import URLSearchParams from 'url-search-params';

/**
 * js对象转url参数
 */
export function urlEncode(params: object): string {
  const urlsearchparams = new URLSearchParams();
  Object.keys(params).forEach((value) => {
    if (params[value] !== undefined && params[value] !== null && params[value] !== '') {
      urlsearchparams.append(value, params[value]);
    }
  });
  return urlsearchparams.toString();
}

/**
 * 获取链接的参数
 */
export function getUrlParams(url: string): HTMLAnchorElement {
  const linkElem = window.document.createElement('a');
  linkElem.href = url;
  return linkElem;
}

/**
 * url在字符串中的索引起始位置
 */
export function urlStartIndexForString(str: string, isLastOf?: boolean): number {
  const searchType = isLastOf ? 'lastIndexOf' : 'indexOf';
  if (str[searchType]('http://') >= 0) {
    return str[searchType]('http://');
  } else if (str[searchType]('https://') >= 0) {
    return str[searchType]('https://');
  }
  return undefined;
}

/**
 * 获取当前页面路由
 */
export function getCurrentRoute(): string {
  const hahs = window.location.hash;
  return hahs.substr(0, hahs.indexOf('?'));
}