@croct/cache
Version:
An abstraction layer for caching.
24 lines (23 loc) • 733 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultWhileMissCache = void 0;
class DefaultWhileMissCache {
constructor(config) {
this.provider = config.provider;
this.defaultValue = config.defaultValue;
this.errorHandler = config.errorHandler ?? (() => { });
}
get(key, loader) {
return this.provider.get(key, innerKey => {
loader(innerKey).catch(this.errorHandler);
return Promise.resolve(this.defaultValue);
});
}
set(key, value) {
return this.provider.set(key, value);
}
delete(key) {
return this.provider.delete(key);
}
}
exports.DefaultWhileMissCache = DefaultWhileMissCache;