39 lines
1.0 KiB
JavaScript
Executable File
39 lines
1.0 KiB
JavaScript
Executable File
var querystring = require("querystring");
|
|
for(var i in querystring){
|
|
exports[i] = querystring[i];
|
|
}
|
|
var type = Function.prototype.call.bind(Object.prototype.toString);
|
|
|
|
// Parse the name/value pairs of the query string into a flattened array
|
|
// Automatically munge the parameters
|
|
exports.parseToArray = function(arr, qs){
|
|
var parsed = exports.parse(qs);
|
|
for(var i in parsed){
|
|
exports.addToArray(arr, i, parsed[i]);
|
|
}
|
|
};
|
|
|
|
// Add munged values with name/value pairs to the flattened array
|
|
exports.addToArray = function(arr, name, value){
|
|
if(value === undefined || value === null){
|
|
value = "";
|
|
}
|
|
|
|
switch(type(value)){
|
|
case "[object String]":
|
|
case "[object Number]":
|
|
case "[object Boolean]":
|
|
arr.push(name, value + "");
|
|
break;
|
|
case "[object Array]":
|
|
value.forEach(function(value){
|
|
exports.addToArray(arr, name + "[]", value);
|
|
});
|
|
break;
|
|
case "[object Object]":
|
|
for(var k in value){
|
|
exports.addToArray(arr, name + "[" + k + "]", value[k]);
|
|
}
|
|
};
|
|
};
|