50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
"use strict";
|
|
var _a;
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.PrefixingKeyValueCache = void 0;
|
|
const prefixesAreUnnecessaryForIsolationSymbol = Symbol("prefixesAreUnnecessaryForIsolation");
|
|
class PrefixingKeyValueCache {
|
|
constructor(wrapped, prefix) {
|
|
this.wrapped = wrapped;
|
|
if (PrefixingKeyValueCache.prefixesAreUnnecessaryForIsolation(wrapped)) {
|
|
this.prefix = "";
|
|
this[prefixesAreUnnecessaryForIsolationSymbol] = true;
|
|
}
|
|
else {
|
|
this.prefix = prefix;
|
|
}
|
|
}
|
|
get(key) {
|
|
return this.wrapped.get(this.prefix + key);
|
|
}
|
|
set(key, value, options) {
|
|
return this.wrapped.set(this.prefix + key, value, options);
|
|
}
|
|
delete(key) {
|
|
return this.wrapped.delete(this.prefix + key);
|
|
}
|
|
static prefixesAreUnnecessaryForIsolation(c) {
|
|
return prefixesAreUnnecessaryForIsolationSymbol in c;
|
|
}
|
|
static cacheDangerouslyDoesNotNeedPrefixesForIsolation(c) {
|
|
return new PrefixesAreUnnecessaryForIsolationCache(c);
|
|
}
|
|
}
|
|
exports.PrefixingKeyValueCache = PrefixingKeyValueCache;
|
|
class PrefixesAreUnnecessaryForIsolationCache {
|
|
constructor(wrapped) {
|
|
this.wrapped = wrapped;
|
|
this[_a] = true;
|
|
}
|
|
get(key) {
|
|
return this.wrapped.get(key);
|
|
}
|
|
set(key, value, options) {
|
|
return this.wrapped.set(key, value, options);
|
|
}
|
|
delete(key) {
|
|
return this.wrapped.delete(key);
|
|
}
|
|
}
|
|
_a = prefixesAreUnnecessaryForIsolationSymbol;
|
|
//# sourceMappingURL=PrefixingKeyValueCache.js.map
|