UNPKG

decorio

Version:

First-class ECMAScript decorators for caching, binding, and concurrency patterns

2 lines (1 loc) 378 B
import{decorate as f,emplace as u}from"../internal/index.js";function d(c,o){return f(c,o,s=>{const r=new Map;return function(...t){const e=u(r,this,()=>({calls:new Map}));for(const[n,a]of e.calls.entries())if(n.length===t.length&&n.every((i,p)=>i===t[p]))return a;const l=s.apply(this,t);return e.calls.set(t,l),l.finally(()=>e.calls.delete(t)),l}})}export{d as singleflight};