Trasposer
A small and fast "dataKey" transposer.
This module turns here.is[2].some["!data!"]
into
here: is: some: "!data!": 'a value'
The dataKey syntax is just javascript.
You can even start the dataKey with an array index to create an array.
// returns [ , { test: 'test' } ]
One usecase of many:
Install
npm install transposer
class Transposer( ?data? )
Transposer = transposer = some: data: 1 transposer // returns 1transposertransposer // returns 2transposerdatasomedatahere // returns 2
See ./Transposer.js
for parameter information.
.transpose( dataKey, value )
Turns data.key[1].c
into its represented data structure.
Sets the last key in the string to a value.
Returns null on an invalid dataKey.
// returns { some: { data: 100 } } // or transpose = prototype // returns { some: { data: 100 } }
.transposeAll( object )
Transposes all properties of object
, modifying object
.
Any dataKey is deleted from the object in place of the transposed parent key.
data = 'name[0]': 'Jim' 'name[1]': 'Bob' type: 'person' transposer data // returns { name: [ 'Jim', 'Bob' ], type: 'person' }
.set( dataKey or transposedData, value)
Sets a value in this.data
.
// Both do the same thingtransposertransposertransposerdata // returns { some: { data: 1 } }
.get( dataKey or transposedData )
Finds a value in this.data
.
transposer = some: data: 500 // Both yield the same thing (The value is ignored)transposer // returns 500transposer// returns 500
.merge( obj1, obj2, depth = 16, overwrite = false )
Merges obj2 into obj1, optionally overwriting properties.
Tries to always maintain an object's reference in obj1 unless overwritten
is true
.