0.3.5 • Published 9 years ago

transposer v0.3.5

Weekly downloads
459
License
-
Repository
github
Last release
9 years ago

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.

0.3.5

9 years ago

0.3.4

9 years ago

0.3.3

9 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.8

10 years ago

0.2.7

10 years ago

0.2.5

10 years ago

0.2.4

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago