JSPM

collapse-object

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 324
  • Score
    100M100P100Q85954F
  • License MIT

Collapse an object into a string using the syntax from expand-object. This syntax is pretty handy for setting command line arguments, for expanding/collapsing test fixtures, etc.

Package Exports

  • collapse-object

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 (collapse-object) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

collapse-object NPM version

Collapse an object into a string using the syntax from expand-object. This syntax is pretty handy for setting command line arguments, for expanding/collapsing test fixtures, etc.

Install

Install with npm

$ npm i collapse-object --save

Usage

var collapse = require('collapse-object');

collapse({a: {b: {c: [1, 2, 3]}}})
//=> 'a.b.c:1,2,3'

Re-expand a collapsed string with expand-object:

var expand = require('expand-object');
//=> {a: {b: {c: [1, 2, 3]}}}

collapse an object

collapse({a: 'b'})
//=> 'a:b'

expand('a:b')
//=> {a: 'b'}

collapse objects with number values

collapse({a: 0})
//=> 'a:0'
collapse({a: 1})
//=> 'a:1'

expand('a:0')
//=> {a: 0}
expand('a:1')
//=> {a: 1}

collapse objects with boolean values

collapse({a: false})
//=> 'a:false'
collapse({a: true})
//=> 'a:true'

expand('a:false')
//=> {a: false}
expand('a:true')
//=> {a: true}

collapse array with boolean values

collapse({a: [1, 2, 3]})
//=> 'a:1,2,3'
collapse({a: {b: [1, 2, 3]}, c: 'd'})
//=> 'a.b:1,2,3|c:d'

expand('a:1,2,3')
//=> {a: [1, 2, 3]}
expand('a.b:1,2,3|c:d')
//=> {a: {b: [1, 2, 3]}, c: 'd'}

collapse nested objects with boolean values

collapse({a: {b: true}})
//=> 'a.b:true'
collapse({a: {b: [true]}})
//=> 'a.b:true,'
collapse({a: {b: [true, false]}})
//=> 'a.b:true,false'
collapse({a: {b: [true, false], c: {d: 'e'}}})
//=> 'a.b:true,false|a.c.d:e'

expand('a.b:true')
//=> {a: {b: true}}
expand('a.b:true')
//=> {a: {b: true}}
expand('a.b:true,')
//=> {a: {b: [true]}}
expand('a.b:true,false')
//=> {a: {b: [true, false]}}
expand('a.b:true,false|a.c.d:e')
//=> {a: {b: [true, false], c: {d: 'e'}}}

collapse complex objects

collapse({a: {b: 'c', d: 'e'}, f: 'g'})
//=> 'a.b:c|a.d:e|f:g'
collapse({a: 'b', c: 'd', e: {f: 'g', h: 'i', j: {k: {l: 'm'}}}})
//=> 'a:b|c:d|e.f:g|e.h:i|e.j.k.l:m'
collapse({a: 'b', c: 'd', e: {f: 'g', h: ['i', 'j', 'k']}})
//=> 'a:b|c:d|e.f:g|e.h:i,j,k'
collapse({a: 'b', c: 'd', e: {f: 'g', h: ['i', 'j', 'k', {one: 'two'}]}})
//=> 'a:b|c:d|e.f:g|e.h:i,j,k,one:two'

expand('a.b:c|a.d:e|f:g')
//=> {a: {b: 'c', d: 'e'}, f: 'g'}
expand('a:b|c:d|e.f:g|e.h:i|e.j.k.l:m')
//=> {a: 'b', c: 'd', e: {f: 'g', h: 'i', j: {k: {l: 'm'}}}}
expand('a:b|c:d|e.f:g|e.h:i,j,k')
//=> {a: 'b', c: 'd', e: {f: 'g', h: ['i', 'j', 'k']}}
expand('a:b|c:d|e.f:g|e.h:i,j,k,one:two')
//=> {a: 'b', c: 'd', e: {f: 'g', h: ['i', 'j', 'k', {one: 'two'}]}}
  • expand-object: Expand a string into a JavaScript object using a simple notation. Use the CLI or… more
  • kind-of: Get the native type of a value.
  • regex-flags: Does one simple thing - gets the flags from a regular expression. Useful for cloning… more

Running tests

Install dev dependencies:

$ npm i -d && npm test

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue

Author

Jon Schlinkert

License

Copyright © 2015 Jon Schlinkert Released under the MIT license.


This file was generated by verb-cli on August 05, 2015.