Files
old-kitabcitab-frontend/kitabcitab/node_modules/next/dist/lib/coalesced-function.js
2022-12-27 12:05:56 +01:00

34 lines
993 B
JavaScript

"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