@httpc/kit
Version:
httpc toolbox for building function-based API with minimal code and end-to-end type safety
31 lines (30 loc) • 891 B
JavaScript
export class LogCacheDecorator {
constructor(name, logger, provider) {
this.name = name;
this.logger = logger;
this.provider = provider;
}
keys() {
return this.provider.keys();
}
has(key) {
return this.provider.has(key);
}
get(key) {
const value = this.provider.get(key);
this.logger.debug("Cache(%s) %s: %s", this.name, key, value === undefined ? "miss" : "hit");
return value;
}
set(key, value) {
this.logger.debug("Cache(%s) %s: set", this.name, key);
return this.provider.set(key, value);
}
delete(key) {
this.logger.debug("Cache(%s) %s: deleted", this.name, key);
return this.provider.delete(key);
}
clear() {
this.logger.debug("Cache(%s) cleared", this.name);
this.provider.clear();
}
}