Nucleus Powered Mitochondria

    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.

    Keywords

    none

    Install

    npm i transposer

    DownloadsWeekly Downloads

    805

    Version

    0.3.5

    License

    none

    Last publish

    Collaborators

    • nfour