Skip to content

edwardsmit/node-qs-serialization

Repository files navigation

node-qs-serialization

Serialization and deserialization of Javascript objects for use in the querystring part of an url.

param is adapted from jQuery's $.param — the original pure-JS jQuery-traditional serializer, unchanged since 2014.

deparam is an original shim over qs whose behavioral contract was originally derived from Ben Alman's jquery-bbq — same coercion conventions, same test fixtures, same ISO-8859 percent-encoding fallback. The code was rewritten in v1.1.0; the contract was preserved.

param serializes any Javascript object to a valid querystring. deparam deserializes a provided querystring.

var param = require('node-qs-serialization').param;
var deparam = require('node-qs-serialization').deparam;

var paramStr =
  'a[]=4&a[]=5&a[]=6&b[x][]=7&b[y]=8&b[z][]=9&b[z][]=0&b[z][]=true&b[z][]=false&b[z][]=undefined&b[z][]=&c=1';
var paramsObj = {
  a: [4, 5, 6],
  b: {
    x: [7],
    y: 8,
    z: [9, 0, true, false, undefined, '']
  },
  c: 1
};

param(paramsObj).should.equal(paramStr);
deparam(paramStr).should.deep.equal(paramsObj);

Install

npm install node-qs-serialization

(Or from source: npm install github:edwardsmit/node-qs-serialization.)

Usage

var param = require('node-qs-serialization').param;
var deparam = require('node-qs-serialization').deparam;
var paramsObj = deparam(querystring);
var querystring = param(paramsObj);

deparam(querystring, coerce = true, maxDepth = 5)

  • coerce — when true (default), strings "true", "false", "null", "undefined" and numeric values are converted to their JS equivalents.
  • maxDepth — caps nested bracket depth (default 5). Parameters whose key path exceeds this depth are silently dropped. Keys equal to __proto__, constructor, or prototype are always rejected to prevent prototype pollution.

Security

See SECURITY.md for disclosure policy.

License

MIT — see LICENSE for full text including the attributions to jQuery (from which param is adapted) and jquery-bbq (whose behavioral conventions deparam preserves).

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors