hfs
Version:
HTTP File Server
19 lines (18 loc) • 591 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.expiringCache = expiringCache;
function expiringCache(ttl) {
const o = new Map();
return Object.assign(o, {
try(k, creator) {
let ret = o.get(k);
if (ret === undefined) {
ret = creator();
o.set(k, ret);
Promise.resolve(ret).then(() => // in case of async, wait for it to be done before starting the timer
setTimeout(() => o.delete(k), ttl));
}
return ret;
},
});
}
;