UNPKG

agentcrumbs

Version:
39 lines 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MemorySink = void 0; class MemorySink { entries = []; write(crumb) { this.entries.push(crumb); } clear() { this.entries.length = 0; } find(predicate) { return this.entries.find(predicate); } filter(predicate) { return this.entries.filter(predicate); } waitFor(predicate, timeout = 5000) { const existing = this.find(predicate); if (existing) return Promise.resolve(existing); return new Promise((resolve, reject) => { const timer = setTimeout(() => { reject(new Error(`waitFor timed out after ${timeout}ms`)); }, timeout); const origWrite = this.write.bind(this); this.write = (crumb) => { origWrite(crumb); if (predicate(crumb)) { clearTimeout(timer); this.write = origWrite; resolve(crumb); } }; }); } } exports.MemorySink = MemorySink; //# sourceMappingURL=memory.js.map