PrefixingKeyValueCache.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. "use strict";
  2. var _a;
  3. Object.defineProperty(exports, "__esModule", { value: true });
  4. exports.PrefixingKeyValueCache = void 0;
  5. const prefixesAreUnnecessaryForIsolationSymbol = Symbol("prefixesAreUnnecessaryForIsolation");
  6. class PrefixingKeyValueCache {
  7. constructor(wrapped, prefix) {
  8. this.wrapped = wrapped;
  9. if (PrefixingKeyValueCache.prefixesAreUnnecessaryForIsolation(wrapped)) {
  10. this.prefix = "";
  11. this[prefixesAreUnnecessaryForIsolationSymbol] = true;
  12. }
  13. else {
  14. this.prefix = prefix;
  15. }
  16. }
  17. get(key) {
  18. return this.wrapped.get(this.prefix + key);
  19. }
  20. set(key, value, options) {
  21. return this.wrapped.set(this.prefix + key, value, options);
  22. }
  23. delete(key) {
  24. return this.wrapped.delete(this.prefix + key);
  25. }
  26. static prefixesAreUnnecessaryForIsolation(c) {
  27. return prefixesAreUnnecessaryForIsolationSymbol in c;
  28. }
  29. static cacheDangerouslyDoesNotNeedPrefixesForIsolation(c) {
  30. return new PrefixesAreUnnecessaryForIsolationCache(c);
  31. }
  32. }
  33. exports.PrefixingKeyValueCache = PrefixingKeyValueCache;
  34. class PrefixesAreUnnecessaryForIsolationCache {
  35. constructor(wrapped) {
  36. this.wrapped = wrapped;
  37. this[_a] = true;
  38. }
  39. get(key) {
  40. return this.wrapped.get(key);
  41. }
  42. set(key, value, options) {
  43. return this.wrapped.set(key, value, options);
  44. }
  45. delete(key) {
  46. return this.wrapped.delete(key);
  47. }
  48. }
  49. _a = prefixesAreUnnecessaryForIsolationSymbol;
  50. //# sourceMappingURL=PrefixingKeyValueCache.js.map