tiny-querystring
Advanced tools
Comparing version 0.0.1 to 0.0.2
@@ -7,8 +7,7 @@ 'use strict'; | ||
function parse(str) { | ||
return (str + '').replace(/\+/g, ' ').split('&').filter(function (item) { | ||
return !/^\s*$/.test(item); | ||
}).reduce(function (obj, item, index) { | ||
var decode = decodeURIComponent; | ||
return (str + '').replace(/\+/g, ' ').split('&').filter(Boolean).reduce(function (obj, item, index) { | ||
var ref = item.split('='); | ||
var key = ref[0] || ''; | ||
var val = decodeURIComponent(ref[1] || ''); | ||
var key = decode(ref[0] || ''); | ||
var val = decode(ref[1] || ''); | ||
var prev = obj[key]; | ||
@@ -21,10 +20,9 @@ obj[key] = prev === undefined ? val : [].concat(prev, val); | ||
function stringify(obj) { | ||
var encode = encodeURIComponent; | ||
return Object.keys(obj || {}).reduce(function (arr, key) { | ||
var val = obj[key]; | ||
if (val instanceof Array) { | ||
val = val.join('&' + key + '='); | ||
} | ||
arr.push(key + '=' + val); | ||
[].concat(obj[key]).forEach(function (v) { | ||
arr.push(encode(key) + '=' + encode(v)); | ||
}); | ||
return arr; | ||
}, []).join('&').replace(/\s/g, '+'); | ||
}; |
@@ -1,1 +0,1 @@ | ||
(function(a,b){if('function'==typeof define&&define.amd)define(['exports'],b);else if('undefined'!=typeof exports)b(exports);else{var c={exports:{}};b(c.exports),a.tinyQuerystring=c.exports}})(this,function(a){'use strict';a.__esModule=!0,a.parse=function(a){return(a+'').replace(/\+/g,' ').split('&').filter(function(a){return!/^\s*$/.test(a)}).reduce(function(a,b){var c=b.split('='),d=c[0]||'',e=decodeURIComponent(c[1]||''),f=a[d];return a[d]=void 0===f?e:[].concat(f,e),a},{})},a.stringify=function(a){return Object.keys(a||{}).reduce(function(b,c){var d=a[c];return d instanceof Array&&(d=d.join('&'+c+'=')),b.push(c+'='+d),b},[]).join('&').replace(/\s/g,'+')}}); | ||
'use strict';exports.__esModule=!0,exports.parse=parse,exports.stringify=stringify;function parse(a){var b=decodeURIComponent;return(a+'').replace(/\+/g,' ').split('&').filter(Boolean).reduce(function(a,c){var d=c.split('='),e=b(d[0]||''),f=b(d[1]||''),g=a[e];return a[e]=void 0===g?f:[].concat(g,f),a},{})}function stringify(a){var b=encodeURIComponent;return Object.keys(a||{}).reduce(function(c,d){return[].concat(a[d]).forEach(function(a){c.push(b(d)+'='+b(a))}),c},[]).join('&').replace(/\s/g,'+')} |
@@ -20,8 +20,7 @@ (function (global, factory) { | ||
function parse(str) { | ||
return (str + '').replace(/\+/g, ' ').split('&').filter(function (item) { | ||
return !/^\s*$/.test(item); | ||
}).reduce(function (obj, item, index) { | ||
var decode = decodeURIComponent; | ||
return (str + '').replace(/\+/g, ' ').split('&').filter(Boolean).reduce(function (obj, item, index) { | ||
var ref = item.split('='); | ||
var key = ref[0] || ''; | ||
var val = decodeURIComponent(ref[1] || ''); | ||
var key = decode(ref[0] || ''); | ||
var val = decode(ref[1] || ''); | ||
var prev = obj[key]; | ||
@@ -34,8 +33,7 @@ obj[key] = prev === undefined ? val : [].concat(prev, val); | ||
function stringify(obj) { | ||
var encode = encodeURIComponent; | ||
return Object.keys(obj || {}).reduce(function (arr, key) { | ||
var val = obj[key]; | ||
if (val instanceof Array) { | ||
val = val.join('&' + key + '='); | ||
} | ||
arr.push(key + '=' + val); | ||
[].concat(obj[key]).forEach(function (v) { | ||
arr.push(encode(key) + '=' + encode(v)); | ||
}); | ||
return arr; | ||
@@ -42,0 +40,0 @@ }, []).join('&').replace(/\s/g, '+'); |
{ | ||
"name": "tiny-querystring", | ||
"description": "Tiny parsing and formatting URL query strings for Node.js and browser", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"main": "dist/tiny-querystring.js", | ||
@@ -17,3 +17,3 @@ "module": "tiny-querystring.js", | ||
"coverage": "cat ./coverage/lcov.info | coveralls", | ||
"gzip": "gzip -c dist/tiny-querystring.min.js | wc -c", | ||
"gzip": "gzip-size dist/tiny-querystring.min.js", | ||
"rm": "rimraf dist es lib", | ||
@@ -23,6 +23,7 @@ "mkdir": "mkdirp dist", | ||
"build:cmd": "babel tiny-querystring.js -o dist/tiny-querystring.js", | ||
"build:cmd:min": "cross-env BABEL_ENV=cmdmin babel tiny-querystring.js -o dist/tiny-querystring.min.js", | ||
"build:umd": "cross-env BABEL_ENV=umd babel tiny-querystring.js -o dist/tiny-querystring.umd.js", | ||
"build:min": "cross-env BABEL_ENV=min babel tiny-querystring.js -o dist/tiny-querystring.min.js", | ||
"build": "run-p build:*", | ||
"preversion": "yarn test && yarn build" | ||
"build:umd:min": "cross-env BABEL_ENV=umdmin babel tiny-querystring.js -o dist/tiny-querystring.umd.min.js", | ||
"build": "run-p build:**:*", | ||
"preversion": "run-s test build gzip" | ||
}, | ||
@@ -62,2 +63,3 @@ "author": "Cap32", | ||
"eslint-plugin-standard": "^3.0.1", | ||
"gzip-size-cli": "^2.1.0", | ||
"jest": "^21.0.2", | ||
@@ -64,0 +66,0 @@ "mkdirp": "^0.5.1", |
@@ -5,3 +5,3 @@ # tiny-querystring | ||
Tiny parsing and formatting URL query strings for Node.js and browser. (0.43K after gzip) | ||
Tiny parsing and formatting URL query strings for Node.js and browser. (309B only) | ||
@@ -57,5 +57,9 @@ | ||
## Contributing | ||
[Contributing](/CONTRIBUTING.md) | ||
## License | ||
MIT |
export function parse(str) { | ||
var decode = decodeURIComponent; | ||
return (str + '') | ||
.replace(/\+/g, ' ') | ||
.split('&') | ||
.filter(function (item) { | ||
return !/^\s*$/.test(item); | ||
}) | ||
.filter(Boolean) | ||
.reduce(function (obj, item, index) { | ||
var ref = item.split('='); | ||
var key = ref[0] || ''; | ||
var val = decodeURIComponent(ref[1] || ''); | ||
var key = decode(ref[0] || ''); | ||
var val = decode(ref[1] || ''); | ||
var prev = obj[key]; | ||
@@ -21,7 +20,8 @@ obj[key] = prev === undefined ? val : [].concat(prev, val); | ||
export function stringify(obj) { | ||
var encode = encodeURIComponent; | ||
return Object.keys(obj || {}) | ||
.reduce(function (arr, key) { | ||
var val = obj[key]; | ||
if (val instanceof Array) { val = val.join('&' + key + '='); } | ||
arr.push(key + '=' + val); | ||
[].concat(obj[key]).forEach(function (v) { | ||
arr.push(encode(key) + '=' + encode(v)); | ||
}); | ||
return arr; | ||
@@ -28,0 +28,0 @@ }, []) |
9038
9
64
22
96