UNPKG

@benev/slate

Version:
37 lines 997 B
export class Reactor { flat; signals; #wait = Promise.resolve(); constructor(flat, signals) { this.flat = flat; this.signals = signals; } get wait() { return Promise .all([this.flat.wait, this.signals.wait]) .then(() => this.#wait); } reaction(collector, responder) { const actuate = responder ? () => responder(collect()) : () => collect(); const lean = this.lean(actuate); const collect = () => lean.collect(collector); collect(); return lean.stop; } lean(actor) { const lean1 = this.flat.lean(actor); const lean2 = this.signals.lean(actor); return { stop() { lean1.stop(); lean2.stop(); }, collect(collector) { return lean1.collect(() => lean2.collect(collector)); }, }; } } //# sourceMappingURL=reactor.js.map