const kiper = require('kiper');
// somewhere keep an asset
kiper.keep('foo', 'bar');
// somewhere you got it back
let value = kiper.get('foo');
console.log('Got from kiper: ' + value);
console.log('Observe an object and notify on value of the item is changed');
// keep an asset here
let baz = kiper.keep('baz', {
gold: 1000
});
kiper.watch('baz', (obj, oldVal, propkey, type) => {
if (type === 'update') {
console.log('lost one gold: ' + (obj[propkey] - oldVal));
} else if (type === 'add') {
console.log('new prop should be added: ' + (obj['silver']));
} else if (type === 'delete') {
console.log('baz should be undefined after delete: ' + (typeof obj['gold']));
} else {
console.log('do not know change type: ' + type);
}
});
// baz is going to change somewhere
baz.gold = 999
baz.silver = 1000
delete baz.gold
let foobar = kiper.keep('foobar', {
gold: 1000,
owner: {
name: 'Bill Gate',
age: 61
}
});
// deep watching ...
kiper.watch('foobar', true, (obj, oldval, propkey, type) => {
console.log('robber has gold:', obj, oldval)
});
// the owner has lost his gold
foobar.owner.name = 'robber'