UNPKG

tiny-querystring

Version:

Tiny parsing and formatting URL query strings for Node.js and browser

32 lines (29 loc) 691 B
export function parse(str) { var decode = decodeURIComponent; return (str + '') .replace(/\+/g, ' ') .split('&') .filter(Boolean) .reduce(function (obj, item, index) { var ref = item.split('='); var key = decode(ref[0] || ''); var val = decode(ref[1] || ''); var prev = obj[key]; obj[key] = prev === undefined ? val : [].concat(prev, val); return obj; }, {}) ; }; export function stringify(obj) { var encode = encodeURIComponent; return Object.keys(obj || {}) .reduce(function (arr, key) { [].concat(obj[key]).forEach(function (v) { arr.push(encode(key) + '=' + encode(v)); }); return arr; }, []) .join('&') .replace(/\s/g, '+') ; };