0.2.3 • Published 7 years ago

cow v0.2.3

Weekly downloads
9
License
LGPLv3
Repository
github
Last release
7 years ago

Cow

Cow provides a completely transparent copy on write proxy to deep, cyclic js objects.

Build Status Coverage Status Dependency Status

Installation

$ npm install cow

usage

Also note that the copy correctly preserves the objects inheritance and hidden/accessor properties.

function Test() { this.child = {}; }
var obj = new Test(); // provided a normal js object, which
obj.child.obj = obj; // can contain cycles
obj.child2 = obj.child // and references

var cow = new Cow(obj);
var proxy = cow.proxy;

// the proxy has all the properties of obj!
proxy.child.obj === proxy;
proxy.child2 === proxy.child;

// we can write new properties
proxy.child3 = proxy; // even create new cycles!

// convert the proxy back to plain object:
var finished = cow.finish();
finished.child3 === finished;
finished.child.obj === finished;
finished.child === finished.child2;

// and it has left the original object untouched:
obj !== finished;
obj.child !== finished.child;

License

LGPLv3

0.2.3

7 years ago

0.2.2

11 years ago

0.2.1

11 years ago

0.2.0

11 years ago

0.1.0

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago