UNPKG

tiny-querystring

Version:

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

41 lines (38 loc) 1.08 kB
(function (global, factory) { if (typeof define === "function" && define.amd) { define(['exports'], factory); } else if (typeof exports !== "undefined") { factory(exports); } else { var mod = { exports: {} }; factory(mod.exports); global.tinyQuerystring = mod.exports; } })(this, function (exports) { 'use strict'; exports.__esModule = true; exports.parse = parse; exports.stringify = stringify; 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; }, {}); }; 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, '+'); }; });