UNPKG

@luvies/business-rules

Version:

A JS-expression-based rules engine

32 lines 986 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class ResultListener { constructor() { this._results = new Map(); this._listeners = []; } onResult(id, result) { const listeners = this._listeners.filter(listener => { return listener.target === id; }); for (const listener of listeners) { listener.resolve(result); this._listeners.splice(this._listeners.indexOf(listener), 1); } this._results.set(id, result); } async wait(id) { if (this._results.has(id)) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion return this._results.get(id); } return new Promise(resolve => { this._listeners.push({ resolve, target: id, }); }); } } exports.ResultListener = ResultListener; //# sourceMappingURL=result-listener.js.map