12345678910111213141516171819202122232425262728293031323334 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.withCoalescedInvoke = withCoalescedInvoke;
- const globalInvokeCache = new Map();
- function withCoalescedInvoke(func) {
- return async function(key, args) {
- const entry = globalInvokeCache.get(key);
- if (entry) {
- return entry.then((res)=>({
- isOrigin: false,
- value: res.value
- }));
- }
- async function __wrapper() {
- return await func.apply(undefined, args);
- }
- const future = __wrapper().then((res)=>{
- globalInvokeCache.delete(key);
- return {
- isOrigin: true,
- value: res
- };
- }).catch((err)=>{
- globalInvokeCache.delete(key);
- return Promise.reject(err);
- });
- globalInvokeCache.set(key, future);
- return future;
- };
- }
- //# sourceMappingURL=coalesced-function.js.map
|