Skip to content

clear-code/js-extended-immutable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

extended-immutable

Helper library to create extended version of an immutable object, with ES6 Proxy. See also: http://www.clear-code.com/blog/2016/3/4.html

Usage

var immutableObject = {
  originalProperty: true,
  originalMethod: function() {
    return this.originalProperty;
  },
  overriddenMethod: function() {
    return this.originalProperty;
  }
};
immutableObject = Object.freeze(immutableObject);

var proxied = new ExtendedImmutable(immutableObject, {
   addedProperty: true,
   get dynamicProperty() { return this._value; },
   set dynamicProperty(aValue) { return this._value = aValue; },
   overriddenMethod: function() {
     return this.dynamicProperty;
   }
});

proxied.originalProperty; // => true
proxied.addedProperty; // => true
proxied.dynamicProperty; // => undefined
proxied.dynamicProperty = false; // => false
proxied.dynamicProperty; // => false
proxied.originalMethod(); // => true
proxied.overriddenMethod(); // => false

About

Helper library to create extended version of an immutable object, with ES6 Proxy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published