Files
clawdbot/src/agents/skills/serialize.ts
2026-01-14 01:17:56 +00:00

13 lines
408 B
TypeScript

const SKILLS_SYNC_QUEUE = new Map<string, Promise<unknown>>();
export async function serializeByKey<T>(key: string, task: () => Promise<T>) {
const prev = SKILLS_SYNC_QUEUE.get(key) ?? Promise.resolve();
const next = prev.then(task, task);
SKILLS_SYNC_QUEUE.set(key, next);
try {
return await next;
} finally {
if (SKILLS_SYNC_QUEUE.get(key) === next) SKILLS_SYNC_QUEUE.delete(key);
}
}