Package Exports
- q-set
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (q-set) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Q-Set
Set query string style fields on an object.
Installation
Npm
npm install q-set
Bower
bower install q-set
Example
var set = require('q-set');
// Set a key.
set({}, "a", 1); //-> { a: 1 }
// Set a nested path.
set({}, "a[b]", 1); //-> { a: { b: 1 } }
// Implicit array creation (keys used multiple times).
var obj = {};
set(obj, "a", 1); //-> { a: 1 }
set(obj, "a", 2); //-> { a: [1, 2] }
// Explicit array creation.
var obj = {};
set(obj, "a[]", 1); //-> { a: [1] }
set(obj, "a[]", 2); //-> { a: [1, 2] }
// Will also automatically create an array when the a key is a positive integer.
var obj = {};
set(obj, "a[0]", 1); //-> { a: [1] }
set(obj, "a[1]", 2); //-> { a: [1, 2] }
set({}, "b[2]", 3); //-> { b: [,,3] }
// Nested array creation.
var obj = {};
set(obj, "a[][b]", 1); //-> { a: [{ b: 1 }] }
set(obj, "a[][b]", 2); //-> { a: [{ b: 1 }, { b: 2 }] }
Flat qSet
var fSet = require('q-set').flat;
// Doesn't unflatten qs syntax but does append to arrays.
var obj = {};
set(obj, "a[1]", 1); //-> { "a[1]": 1 }
set(obj, "a[1]", 2); //-> { "a[1]": [1, 2] }
Contributions
- Use gulp to run tests.
Please feel free to create a PR!