new-object

Objects with PubSub

new-object

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

$ npm install new-object
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'] 
 
})
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.