refactor(src): split oversized modules
This commit is contained in:
12
src/agents/skills/serialize.ts
Normal file
12
src/agents/skills/serialize.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user