https://github.com/fsvieira/identicobjects
Javascript Object Factory for unique reference shared object creation.
https://github.com/fsvieira/identicobjects
comparing equality immutable json nested-objects nested-structures objects sharing
Last synced: 8 months ago
JSON representation
Javascript Object Factory for unique reference shared object creation.
- Host: GitHub
- URL: https://github.com/fsvieira/identicobjects
- Owner: fsvieira
- License: mit
- Created: 2018-09-09T19:19:11.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-02-14T23:30:27.000Z (over 5 years ago)
- Last Synced: 2024-04-29T18:12:26.947Z (over 1 year ago)
- Topics: comparing, equality, immutable, json, nested-objects, nested-structures, objects, sharing
- Language: JavaScript
- Size: 49.8 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# IdenticObjects
Javascript Object Factory for unique reference shared object creation.It creates unique objects references for same objects, since objects
share references of unique objects inner equal objects will also share
same references, even if there father are not equal.All registered objects are read-only and therefor they can not be changed.
# install
`npm install identicobjects --save`
# how to use
```javascript
const IdenticObjects = require("identicobjects");const objects = new IdenticObjects();
const a = objects.get({
a: {
b: {
c: [{}]
}
}
});const b = objects.get({
a: {
b: {
c: [{}]
}
},
b: []
});const c = objects.get(1);
console.log(c); // print 1// a and b, deep c field is equal,
console.log(a, b, a.a.b.c[0] === b.a.b.c[0]); // a.a.b.c[0] === b.a.b.c[0] = true// a and b are not equal,
console.log(a, b, a === b); // a === b = falsea.d = 1;
// a is unchanged since a is read-only.
console.log(JSON.stringify(a));
```# Use cases
* Comparing objects created on the fly or coming from different sources,
* Use objects as unique key on a Map, or as a unique Set value.