1.2.1 • Published 7 years ago

omniscience v1.2.1

Weekly downloads
35
License
MIT
Repository
github
Last release
7 years ago

omniscience

Watch for changes in arbitrary javascript data structures.

var data = [
	{ value : 22},
	{ value : 19}
];

data = omniscience.watch(data);
data.on('change', function(){
	console.log('something changed in the data');
})

// now make arbitrary changes to the data and detect changes
data.push({value : 1});
data.shift();
data[0].value++;
...etc

Changes will be seen in any descendant of the originally watched object. All descendants of the originally watched object are watchable (i.e. you can set a 'change' handler on them).

See the web apps in the examples directory for other examples.

This module relies on the Proxy object, which at the time of writing is supported on the latest Firefox and Chrome, and the just released node 6.0. In Safari, it works in the Safari Technology Preview version, but not yet in the main public version.

For the reader familiar with the d3-dispatch object, note that omniscience automatically makes the handler types unique, so, unlike d3-dispatch, if you set data.on('change', handler1) then data.on('change', handler2), the second handler will not clobber the first - instead they will both be fired. It is not necessary to write data.on('change.h1', handler1) and data.on('change.h2', handler2)

1.2.1

7 years ago

1.2.0

7 years ago

1.1.6

8 years ago

1.1.5

8 years ago

1.1.4

8 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago

0.0.0

9 years ago