Skip to content

Instantly share code, notes, and snippets.

@jkohlin
Created December 19, 2022 09:23
Show Gist options
  • Save jkohlin/d9b32e231c260f4a2895d9bbd3a00aa2 to your computer and use it in GitHub Desktop.
Save jkohlin/d9b32e231c260f4a2895d9bbd3a00aa2 to your computer and use it in GitHub Desktop.
Return all search params from a url
/**
* Description Plockar ut URL-parametrar som ett objekt plus andra godsaker.
* @param {string} href
* @returns {Object} {...allParams, href:getterFunction, baseUrl:URL, params:URLSearchParams}
*/
function getParams(href) {
const baseUrl = new URL(href)
var paramSeparator = baseUrl.hash.startsWith('#') ? '#' : '?'
var params = baseUrl.hash.startsWith('#') ? new URLSearchParams(baseUrl.hash.slice(1)) : new URLSearchParams(baseUrl.search)
const obj = { baseUrl, get href() { return this.baseUrl.origin + this.baseUrl.pathname + paramSeparator + this.params.toString() }, params }
for (const [key, value] of params.entries()) {
obj[key] = value;
}
params.href = () => this.origin + this.pathname + '#'
return obj
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment