OpenClawBot / src /agents /skills /serialize.ts
darkfire514's picture
Upload 2526 files
fb4d8fe verified
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);
}
}
}