woby
Version:
A high-performance framework with fine-grained observable/signal-based reactivity for building rich applications.
37 lines (36 loc) • 994 B
JavaScript
;
const setters = require("./setters-CyO2VUT6.cjs");
class Root extends setters.Owner {
/* CONSTRUCTOR */
constructor(register) {
super();
this.parent = setters.OWNER;
this.context = setters.OWNER.context;
if (register) {
const suspense = this.get(setters.SYMBOL_SUSPENSE);
if (suspense) {
this.registered = true;
setters.lazySetAdd(this.parent, "roots", this);
}
}
}
/* API */
dispose(deep) {
if (this.registered) {
setters.lazySetDelete(this.parent, "roots", this);
}
super.dispose(deep);
}
wrap(fn, owner, observer, stack) {
const dispose = () => this.dispose(true);
const fnWithDispose = () => fn(stack, dispose);
return super.wrap(fnWithDispose, this, void 0, stack);
}
}
const root = (fn) => {
const stack = setters.callStack();
return new Root(true).wrap(fn, void 0, void 0, stack);
};
exports.Root = Root;
exports.root = root;
//# sourceMappingURL=root-D1a_tPqg.cjs.map