0.7.0 • Published 12 years ago

persistent v0.7.0

Weekly downloads
6
License
-
Repository
github
Last release
12 years ago

Persistent

Persistent data-structures from the comfort of JavaScript - a lá clojure.

Why?

Mutability causes headaches; immutability soothes them. JavaScript's Object and Array are crying out for immutable counterparts to complement first-class functions.

Example

var p = require('persistent'),
    person = p.dict({ firstName: 'hugh', secondName: 'jackson' })
    
var personWithAge = person.set({ age: 24 })

person.has('age')          //= false
personWithAge.has('age')   //= true
personWithAge.get('age')   //= true

Install

npm install persistent

persistent.dict(Object) -> dict

Creates an empty dict, or sets the attributes if an object is passed.

var o = p.dict()

// or
var you = p.dict({ wise: true, willUseThisLib: true })

.set(String, Value) OR .set(Object) -> dict

Returns a new dict with the additional attribute(s).

var o = p.dict()

var changed = o.set('x', 3).set({ y: 4, z: 5 })

changed.has('x') //= true
changed.get('y') //= 4

.get(String) -> value

Gets an attribute.

var o = p.dict({ x: 3, y: 4 })

o.get('x') //= 3

.has(String) -> Boolean

Returns true or false; same as key in object for regular objects:

var o = p.dict({ x: 3, y: 4 })

o.has('x') //= true
o.has('z') //= false

.remove(String) alias: .delete(String) -> dict

Returns a new dict with the key removed.

var o = p.dict({
    foo: 'bar',
    baz: 'quux'
})

var updated = o.remove('foo').remove('baz')
updated.has('foo') //= false
o.has('foo')       //= true

.transient() -> dict

Returns a seperate, mutable object with the same attrs.

var o = p.dict({
    foo: 'bar',
    baz: 'quux'
})

var trans = o.transient()
delete trans.foo

o.has('foo') //= true
0.7.0

12 years ago

0.6.0

12 years ago

0.5.0

12 years ago

0.4.0

13 years ago

0.2.0

13 years ago