accounts
Version:
Tempo Accounts SDK
13 lines • 425 B
JavaScript
/** Deduplicates in-flight promises by key. */
export function withDedupe(fn, { cache = withDedupe.cache, enabled = true, id }) {
if (!enabled || !id)
return fn();
const cached = cache.get(id);
if (cached)
return cached;
const promise = fn().finally(() => cache.delete(id));
cache.set(id, promise);
return promise;
}
withDedupe.cache = new Map();
//# sourceMappingURL=withDedupe.js.map