UNPKG

@pivoto/core

Version:

![build](https://img.shields.io/badge/build-passing-success.svg)

42 lines (38 loc) 960 B
export function parseQuery(href: string = window.location.search): Record<string, string | string[]> { const args = href.split('?'); if (args[0] === href) { return {}; } const obj: Record<string, string | string[]> = {}; const rs = args[1].split('#')[0].split('&'); for (let i = 0; i < rs.length; i++) { let kv = rs[i].split('='); if (obj[kv[0]] != null) { if (Array.isArray(obj[kv[0]])) { (obj[kv[0]] as string[]).push(kv[1]) } else { obj[kv[0]] = [obj[kv[0]] as string, kv[1]] } } else { obj[kv[0]] = kv[1]; } } return obj; } export function getQuery(name, href: string = window.location.search) { return parseQuery(href)[name]; } export function asQuery(obj) { const rs = []; for (const key in obj) { const value = obj[key]; if (value.constructor === Array) { value.forEach(function (_value) { rs.push(key + '=' + _value); }) } else { rs.push(key + '=' + value); } } return rs.join('&'); }