JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 856
  • Score
    100M100P100Q99408F

Set a query string style field on an object.

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!