querystring.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. var querystring = require("querystring");
  2. for(var i in querystring){
  3. exports[i] = querystring[i];
  4. }
  5. var type = Function.prototype.call.bind(Object.prototype.toString);
  6. // Parse the name/value pairs of the query string into a flattened array
  7. // Automatically munge the parameters
  8. exports.parseToArray = function(arr, qs){
  9. var parsed = exports.parse(qs);
  10. for(var i in parsed){
  11. exports.addToArray(arr, i, parsed[i]);
  12. }
  13. };
  14. // Add munged values with name/value pairs to the flattened array
  15. exports.addToArray = function(arr, name, value){
  16. if(value === undefined || value === null){
  17. value = "";
  18. }
  19. switch(type(value)){
  20. case "[object String]":
  21. case "[object Number]":
  22. case "[object Boolean]":
  23. arr.push(name, value + "");
  24. break;
  25. case "[object Array]":
  26. value.forEach(function(value){
  27. exports.addToArray(arr, name + "[]", value);
  28. });
  29. break;
  30. case "[object Object]":
  31. for(var k in value){
  32. exports.addToArray(arr, name + "[" + k + "]", value[k]);
  33. }
  34. };
  35. };