RunKit + npm: query-string

node v13.14.0
endpointsharetweet
var queryString = require("query-string") const search = '?abc=foo&def=[asf]&xyz==5&flag&&double&q=test1=test2&keyB=hff92hfgg='; console.log((search)); const url = require('url') console.log('0. url - the Node.js built-in module √'); console.log(url.parse(search, true).query); console.log('1. queryString ×'); console.log(queryString.parse(search)); var parse = require('url-parse') console.log('2. url-parse √'); console.log(parse(search, true).query); console.log('3. URLSearchParams √'); console.log([...new URLSearchParams(search).entries()].reduce((q, [k, v]) => Object.assign(q, {[k]: v}), {})) const getUrlParams2 = (search = '') => { const hashes = search.slice(search.indexOf('?') + 1).split('&'); return hashes.reduce((acc, hash) => { // eslint-disable-next-line const [key, val] = hash.split('='); return { ...acc, [key]: decodeURIComponent(val) }; }, {}); }; console.log('4. getUrlParams2 reduce'); console.log(getUrlParams2(search)) const decodeURLParams = search => { const hashes = search.slice(search.indexOf("?") + 1).split("&"); return hashes.reduce((params, hash) => { const split = hash.indexOf("="); const key = hash.slice(0, split); const val = hash.slice(split + 1); return Object.assign(params, { [key]: decodeURIComponent(val) }); }, {}); }; console.log('5. decodeURLParams reduce'); console.log(decodeURLParams(search)) const decodeURLParams2 = search => { const hashes = search.slice(search.indexOf("?") + 1).split("&"); return hashes.reduce((params, hash) => { const split = hash.indexOf("="); if (split < 0) { return Object.assign(params, { [hash]: null }); } const key = hash.slice(0, split); const val = hash.slice(split + 1); return Object.assign(params, { [key]: decodeURIComponent(val) }); }, {}); }; console.log('6. decodeURLParams2 reduce'); console.log(decodeURLParams2(search))
Created from: https://npm.runkit.com/query-string
Loading…