1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.DefaultCacheFactory = void 0;
|
4 | const tslib_1 = require("tslib");
|
5 | const inversify_1 = require("inversify");
|
6 | class WeakCache {
|
7 | constructor() {
|
8 | this.store = new WeakMap();
|
9 | }
|
10 | get(key) {
|
11 | return this.store.get(key);
|
12 | }
|
13 | set(key, value) {
|
14 | this.store.set(key, value);
|
15 | }
|
16 | delete(key) {
|
17 | this.store.delete(key);
|
18 | }
|
19 | has(key) {
|
20 | return this.store.has(key);
|
21 | }
|
22 | clear() {
|
23 | this.store = new WeakMap();
|
24 | }
|
25 | }
|
26 | let DefaultCacheFactory = class DefaultCacheFactory {
|
27 |
|
28 | create(weak) {
|
29 | return weak ? new WeakCache() : new Map();
|
30 | }
|
31 | };
|
32 | DefaultCacheFactory = tslib_1.__decorate([
|
33 | inversify_1.injectable()
|
34 | ], DefaultCacheFactory);
|
35 | exports.DefaultCacheFactory = DefaultCacheFactory;
|
36 |
|
\ | No newline at end of file |