Files
harness-tools/extensions/subagents/src/result-delivery.ts
T

21 lines
449 B
TypeScript

export function createDeferredResultDelivery<T extends { id: string }>() {
const pending = new Map<string, T>();
return {
defer(result: T) {
pending.set(result.id, result);
},
consume(ids: Iterable<string>) {
for (const id of ids) pending.delete(id);
},
drain() {
const results = [...pending.values()];
pending.clear();
return results;
},
clear() {
pending.clear();
},
};
}