babel-plugin-elsa
Version:
A babel plugin for replacing object and array literals with immutable versions
15 lines (11 loc) • 369 B
JavaScript
/* eslint-disable no-var */
var immutabilityUpdate = require('immutability-helper');
var merge = require('lodash/merge');
function FrozenObject(obj) {
merge(this, obj);
Object.freeze(this);
}
FrozenObject.prototype.update = function update(updateObj) {
return new FrozenObject(immutabilityUpdate(merge({}, this), updateObj));
};
module.exports = FrozenObject;