export function createSerializedRunner(task) { let activePromise = null; return function runSerialized(...args) { if (activePromise) { return activePromise; } activePromise = Promise.resolve(task(...args)) .finally(() => { activePromise = null; }); return activePromise; }; }