transposer

0.3.5 • Public • Published

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.

new Transposer().transpose( '[1].test', 'test' ) // returns [ , { test: 'test' } ]

One usecase of many:

<input name="some.data[0].here" value="1" />

Install

npm install transposer

class Transposer( ?data? )

Transposer = require('transposer')
transposer = new Transposer({ some: { data: 1 } })
 
transposer.get('some.data') // returns 1
transposer.set('some.data.here', 2)
transposer.get('some.data.here') // returns 2
transposer.data.some.data.here // 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.

new Transposer().transpose('some.data', 100) // returns { some: { data: 100 } }
 
// or
 
{ transpose } = require('transposer').prototype
transpose('some.data', 100) // 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.transposeAll(data)
 
data // returns { name: [ 'Jim', 'Bob' ], type: 'person' }

.set( dataKey or transposedData, value)

Sets a value in this.data.

// Both do the same thing
transposer.set('some.data', 1)
transposer.set({ some: { data: 1} })
transposer.data // returns { some: { data: 1 } }

.get( dataKey or transposedData )

Finds a value in this.data.

transposer = new Transposer({ some: { data: 500 } })
// Both yield the same thing (The value is ignored)
transposer.get('some.data') // returns 500
transposer.get({ some: { data: null } })// 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.

Readme

Keywords

none

Package Sidebar

Install

npm i transposer

Weekly Downloads

39

Version

0.3.5

License

none

Last publish

Collaborators

  • nfour