woby
Version:
A high-performance framework with fine-grained observable/signal-based reactivity for building rich applications.
37 lines (36 loc) • 1.01 kB
JavaScript
;
const setters = require("./setters-CMvyty0B.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 = (disposeStack) => this.dispose(true);
const wrapper = (callStack) => fn(callStack, dispose);
return super.wrap(wrapper, 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-B1uuIGIw.cjs.map