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 
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'}]}}
Related projects
- 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.