UNPKG

fluxel

Version:

An ultra-lightweight, high-performance library for efficient DOM building and dynamic web UIs

47 lines (46 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return ReactiveDependency; } }); function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } let ReactiveDependency = class ReactiveDependency { get value() { return this._accessor.get(); } set value(val) { this._accessor.set(val); } derive(fn) { const derivedAccessor = { get: ()=>fn(this.value), set: (val)=>{ throw new TypeError("Cannot set value of derived dependency"); } }; return new ReactiveDependency(derivedAccessor, this.addDependency); } constructor(_accessor, addDependency){ _define_property(this, "_accessor", void 0); _define_property(this, "addDependency", void 0); this._accessor = _accessor; this.addDependency = addDependency; } };