UNPKG

hfs

Version:
19 lines (18 loc) 591 B
"use strict"; 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; }, }); }