new-object

Objects with PubSub

npm install new-object
6 downloads in the last week
12 downloads in the last month

new-object Build Status

Objects that you can subscribe to changes. See also: new-list

Install

$ npm install new-object

Usage

prices = newObject({ apple: 3, grape: 4 })
prices('banana', 1)

prices('apple')
// => 3

prices('banana')
// => 1

Subscribing to changes:

prices('cherry', 5)
prices('apple', 2)
prices.rm('banana') // or: prices.remove, prices.unset

prices.subscribe(function(update){

    update.set
    // => { cherry: 5, apple: 2 }

    update.rm
    // => ['banana']

})

Publishing Custom Updates

people = newObject({ john: { age: 21 city: 'SF' }, smith: { age: 23, city: 'NYC' } })

people.subscribe(function(update){

  if(update.person)
    debug('%s was updated', update.person)

})

people('john').age = 22;
people.publish({ person: 'john' })

See tests for more information.

npm loves you