UNPKG

@benev/slate

Version:
40 lines 927 B
import { Op } from "../op/op.js"; import { Signal } from "./signal.js"; export class OpSignal extends Signal { #relevant = 0; constructor(op) { super(op); } async load(fn) { const id = ++this.#relevant; return Op.load(op => { if (this.#relevant === id) this.value = op; }, fn); } setLoading() { this.value = Op.loading(); } setError(reason) { this.value = Op.error(reason); } setReady(payload) { this.value = Op.ready(payload); } isLoading() { return Op.is.loading(this.value); } isError() { return Op.is.error(this.value); } isReady() { return Op.is.ready(this.value); } get payload() { return Op.payload(this.value); } select(choices) { return Op.select(this.value, choices); } } //# sourceMappingURL=op_signal.js.map