@blumintinc/typescript-memoize 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
- interface MemoizeArgs {
2
- expiring?: number;
3
- hashFunction?: boolean | ((...args: any[]) => any);
4
- tags?: string[];
5
- useDeepEqual?: boolean;
6
- }
7
- export declare function Memoize(args?: MemoizeArgs | MemoizeArgs['hashFunction']): (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => void;
8
- export declare function MemoizeExpiring(expiring: number, hashFunction?: MemoizeArgs['hashFunction']): (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => void;
9
- export declare function clear(tags: string[]): number;
10
- export {};
1
+ interface MemoizeArgs {
2
+ expiring?: number;
3
+ hashFunction?: boolean | ((...args: any[]) => any);
4
+ tags?: string[];
5
+ useDeepEqual?: boolean;
6
+ }
7
+ export declare function Memoize(args?: MemoizeArgs | MemoizeArgs['hashFunction']): (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => void;
8
+ export declare function MemoizeExpiring(expiring: number, hashFunction?: MemoizeArgs['hashFunction']): (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => void;
9
+ export declare function clear(tags: string[]): number;
10
+ export {};
@@ -1,219 +1,261 @@
1
- const equal = require('fast-deep-equal');
2
- export function Memoize(args) {
3
- var _a;
4
- let hashFunction;
5
- let duration;
6
- let tags;
7
- let useDeepEqual = false;
8
- if (typeof args === 'object') {
9
- hashFunction = args.hashFunction;
10
- duration = args.expiring;
11
- tags = args.tags;
12
- useDeepEqual = (_a = args.useDeepEqual) !== null && _a !== void 0 ? _a : false;
13
- }
14
- else {
15
- hashFunction = args;
16
- }
17
- return (target, propertyKey, descriptor) => {
18
- if (descriptor.value != null) {
19
- descriptor.value = getNewFunction(descriptor.value, hashFunction, duration, tags, useDeepEqual);
20
- }
21
- else if (descriptor.get != null) {
22
- descriptor.get = getNewFunction(descriptor.get, hashFunction, duration, tags, useDeepEqual);
23
- }
24
- else {
25
- throw 'Only put a Memoize() decorator on a method or get accessor.';
26
- }
27
- };
28
- }
29
- export function MemoizeExpiring(expiring, hashFunction) {
30
- return Memoize({
31
- expiring,
32
- hashFunction
33
- });
34
- }
35
- const clearCacheTagsMap = new Map();
36
- export function clear(tags) {
37
- const cleared = new Set();
38
- for (const tag of tags) {
39
- const maps = clearCacheTagsMap.get(tag);
40
- if (maps) {
41
- for (const mp of maps) {
42
- if (!cleared.has(mp)) {
43
- mp.clear();
44
- cleared.add(mp);
45
- }
46
- }
47
- }
48
- }
49
- return cleared.size;
50
- }
51
- class DeepEqualMap {
52
- constructor() {
53
- this.map = new Map();
54
- }
55
- has(key) {
56
- const entries = Array.from(this.map.values());
57
- for (const entry of entries) {
58
- if (equal(entry.key, key)) {
59
- return true;
60
- }
61
- }
62
- return false;
63
- }
64
- get(key) {
65
- const entries = Array.from(this.map.values());
66
- for (const entry of entries) {
67
- if (equal(entry.key, key)) {
68
- return entry.value;
69
- }
70
- }
71
- return undefined;
72
- }
73
- set(key, value) {
74
- const entries = Array.from(this.map.entries());
75
- for (const [serializedKey, entry] of entries) {
76
- if (equal(entry.key, key)) {
77
- this.map.delete(serializedKey);
78
- break;
79
- }
80
- }
81
- const serializedKey = `${Date.now()}_${Math.random()}`;
82
- this.map.set(serializedKey, { key, value });
83
- return this;
84
- }
85
- clear() {
86
- this.map.clear();
87
- }
88
- }
89
- function getNewFunction(originalMethod, hashFunction, duration = 0, tags, useDeepEqual = false) {
90
- const propMapName = Symbol(`__memoized_map__`);
91
- const propDeepMapName = Symbol(`__memoized_deep_map__`);
92
- return function (...args) {
93
- let returnedValue;
94
- if (useDeepEqual) {
95
- if (!this.hasOwnProperty(propDeepMapName)) {
96
- Object.defineProperty(this, propDeepMapName, {
97
- configurable: false,
98
- enumerable: false,
99
- writable: false,
100
- value: new DeepEqualMap()
101
- });
102
- }
103
- let myMap = this[propDeepMapName];
104
- if (Array.isArray(tags)) {
105
- for (const tag of tags) {
106
- const mapWrapper = {
107
- clear: () => myMap.clear()
108
- };
109
- if (clearCacheTagsMap.has(tag)) {
110
- clearCacheTagsMap.get(tag).push(mapWrapper);
111
- }
112
- else {
113
- clearCacheTagsMap.set(tag, [mapWrapper]);
114
- }
115
- }
116
- }
117
- let hashKey;
118
- if (hashFunction === true) {
119
- hashKey = args;
120
- }
121
- else if (hashFunction) {
122
- hashKey = hashFunction.apply(this, args);
123
- }
124
- else if (args.length > 0) {
125
- hashKey = args.length === 1 ? args[0] : args;
126
- }
127
- else {
128
- hashKey = this;
129
- }
130
- const timestampKey = { __timestamp: true, key: hashKey };
131
- let isExpired = false;
132
- if (duration > 0) {
133
- if (!myMap.has(timestampKey)) {
134
- isExpired = true;
135
- }
136
- else {
137
- let timestamp = myMap.get(timestampKey);
138
- isExpired = (Date.now() - timestamp) > duration;
139
- }
140
- }
141
- if (myMap.has(hashKey) && !isExpired) {
142
- returnedValue = myMap.get(hashKey);
143
- }
144
- else {
145
- returnedValue = originalMethod.apply(this, args);
146
- myMap.set(hashKey, returnedValue);
147
- if (duration > 0) {
148
- myMap.set(timestampKey, Date.now());
149
- }
150
- }
151
- }
152
- else {
153
- if (!this.hasOwnProperty(propMapName)) {
154
- Object.defineProperty(this, propMapName, {
155
- configurable: false,
156
- enumerable: false,
157
- writable: false,
158
- value: new Map()
159
- });
160
- }
161
- let myMap = this[propMapName];
162
- if (Array.isArray(tags)) {
163
- for (const tag of tags) {
164
- if (clearCacheTagsMap.has(tag)) {
165
- clearCacheTagsMap.get(tag).push(myMap);
166
- }
167
- else {
168
- clearCacheTagsMap.set(tag, [myMap]);
169
- }
170
- }
171
- }
172
- if (hashFunction || args.length > 0 || duration > 0) {
173
- let hashKey;
174
- if (hashFunction === true) {
175
- hashKey = args.map(a => a.toString()).join('!');
176
- }
177
- else if (hashFunction) {
178
- hashKey = hashFunction.apply(this, args);
179
- }
180
- else {
181
- hashKey = args[0];
182
- }
183
- const timestampKey = `${hashKey}__timestamp`;
184
- let isExpired = false;
185
- if (duration > 0) {
186
- if (!myMap.has(timestampKey)) {
187
- isExpired = true;
188
- }
189
- else {
190
- let timestamp = myMap.get(timestampKey);
191
- isExpired = (Date.now() - timestamp) > duration;
192
- }
193
- }
194
- if (myMap.has(hashKey) && !isExpired) {
195
- returnedValue = myMap.get(hashKey);
196
- }
197
- else {
198
- returnedValue = originalMethod.apply(this, args);
199
- myMap.set(hashKey, returnedValue);
200
- if (duration > 0) {
201
- myMap.set(timestampKey, Date.now());
202
- }
203
- }
204
- }
205
- else {
206
- const hashKey = this;
207
- if (myMap.has(hashKey)) {
208
- returnedValue = myMap.get(hashKey);
209
- }
210
- else {
211
- returnedValue = originalMethod.apply(this, args);
212
- myMap.set(hashKey, returnedValue);
213
- }
214
- }
215
- }
216
- return returnedValue;
217
- };
218
- }
1
+ import equal from '@blumintinc/fast-deep-equal';
2
+ function isOpaqueClassInstance(obj) {
3
+ if (obj == null || typeof obj !== 'object' || Array.isArray(obj))
4
+ return false;
5
+ const proto = Object.getPrototypeOf(obj);
6
+ if (proto === null || proto === Object.prototype)
7
+ return false;
8
+ if (proto.constructor === Object)
9
+ return false;
10
+ if (obj instanceof Date || obj instanceof RegExp ||
11
+ obj instanceof Map || obj instanceof Set)
12
+ return false;
13
+ return Object.keys(obj).length === 0;
14
+ }
15
+ function containsOpaqueValue(obj) {
16
+ if (typeof obj !== 'object' || obj === null)
17
+ return false;
18
+ return Object.values(obj).some(isOpaqueClassInstance);
19
+ }
20
+ function memoizeEqual(a, b) {
21
+ if (a === b)
22
+ return true;
23
+ if (a == null || b == null)
24
+ return false;
25
+ if (typeof a !== 'object' || typeof b !== 'object')
26
+ return equal(a, b);
27
+ if (isOpaqueClassInstance(a) || isOpaqueClassInstance(b))
28
+ return false;
29
+ if (Array.isArray(a) && Array.isArray(b)) {
30
+ if (a.length !== b.length)
31
+ return false;
32
+ return a.every((el, i) => memoizeEqual(el, b[i]));
33
+ }
34
+ if (!containsOpaqueValue(a) && !containsOpaqueValue(b)) {
35
+ return equal(a, b);
36
+ }
37
+ const keysA = Object.keys(a);
38
+ const keysB = Object.keys(b);
39
+ if (keysA.length !== keysB.length)
40
+ return false;
41
+ return keysA.every(key => key in b &&
42
+ memoizeEqual(a[key], b[key]));
43
+ }
44
+ export function Memoize(args) {
45
+ var _a;
46
+ let hashFunction;
47
+ let duration;
48
+ let tags;
49
+ let useDeepEqual = true;
50
+ if (typeof args === 'object') {
51
+ hashFunction = args.hashFunction;
52
+ duration = args.expiring;
53
+ tags = args.tags;
54
+ useDeepEqual = (_a = args.useDeepEqual) !== null && _a !== void 0 ? _a : true;
55
+ }
56
+ else {
57
+ hashFunction = args;
58
+ }
59
+ return (target, propertyKey, descriptor) => {
60
+ if (descriptor.value != null) {
61
+ descriptor.value = getNewFunction(descriptor.value, hashFunction, duration, tags, useDeepEqual);
62
+ }
63
+ else if (descriptor.get != null) {
64
+ descriptor.get = getNewFunction(descriptor.get, hashFunction, duration, tags, useDeepEqual);
65
+ }
66
+ else {
67
+ throw 'Only put a Memoize() decorator on a method or get accessor.';
68
+ }
69
+ };
70
+ }
71
+ export function MemoizeExpiring(expiring, hashFunction) {
72
+ return Memoize({
73
+ expiring,
74
+ hashFunction
75
+ });
76
+ }
77
+ const clearCacheTagsMap = new Map();
78
+ export function clear(tags) {
79
+ const cleared = new Set();
80
+ for (const tag of tags) {
81
+ const maps = clearCacheTagsMap.get(tag);
82
+ if (maps) {
83
+ for (const mp of maps) {
84
+ if (!cleared.has(mp)) {
85
+ mp.clear();
86
+ cleared.add(mp);
87
+ }
88
+ }
89
+ }
90
+ }
91
+ return cleared.size;
92
+ }
93
+ class DeepEqualMap {
94
+ constructor() {
95
+ this.map = new Map();
96
+ }
97
+ has(key) {
98
+ const entries = Array.from(this.map.values());
99
+ for (const entry of entries) {
100
+ if (memoizeEqual(entry.key, key)) {
101
+ return true;
102
+ }
103
+ }
104
+ return false;
105
+ }
106
+ get(key) {
107
+ const entries = Array.from(this.map.values());
108
+ for (const entry of entries) {
109
+ if (memoizeEqual(entry.key, key)) {
110
+ return entry.value;
111
+ }
112
+ }
113
+ return undefined;
114
+ }
115
+ set(key, value) {
116
+ const entries = Array.from(this.map.entries());
117
+ for (const [serializedKey, entry] of entries) {
118
+ if (memoizeEqual(entry.key, key)) {
119
+ this.map.delete(serializedKey);
120
+ break;
121
+ }
122
+ }
123
+ const serializedKey = `${Date.now()}_${Math.random()}`;
124
+ this.map.set(serializedKey, { key, value });
125
+ return this;
126
+ }
127
+ clear() {
128
+ this.map.clear();
129
+ }
130
+ }
131
+ function getNewFunction(originalMethod, hashFunction, duration = 0, tags, useDeepEqual = true) {
132
+ const propMapName = Symbol(`__memoized_map__`);
133
+ const propDeepMapName = Symbol(`__memoized_deep_map__`);
134
+ return function (...args) {
135
+ let returnedValue;
136
+ if (useDeepEqual) {
137
+ if (!this.hasOwnProperty(propDeepMapName)) {
138
+ Object.defineProperty(this, propDeepMapName, {
139
+ configurable: false,
140
+ enumerable: false,
141
+ writable: false,
142
+ value: new DeepEqualMap()
143
+ });
144
+ }
145
+ let myMap = this[propDeepMapName];
146
+ if (Array.isArray(tags)) {
147
+ for (const tag of tags) {
148
+ const mapWrapper = {
149
+ clear: () => myMap.clear()
150
+ };
151
+ if (clearCacheTagsMap.has(tag)) {
152
+ clearCacheTagsMap.get(tag).push(mapWrapper);
153
+ }
154
+ else {
155
+ clearCacheTagsMap.set(tag, [mapWrapper]);
156
+ }
157
+ }
158
+ }
159
+ let hashKey;
160
+ if (hashFunction === true) {
161
+ hashKey = args;
162
+ }
163
+ else if (hashFunction) {
164
+ hashKey = hashFunction.apply(this, args);
165
+ }
166
+ else if (args.length > 0) {
167
+ hashKey = args.length === 1 ? args[0] : args;
168
+ }
169
+ else {
170
+ hashKey = this;
171
+ }
172
+ const timestampKey = { __timestamp: true, key: hashKey };
173
+ let isExpired = false;
174
+ if (duration > 0) {
175
+ if (!myMap.has(timestampKey)) {
176
+ isExpired = true;
177
+ }
178
+ else {
179
+ let timestamp = myMap.get(timestampKey);
180
+ isExpired = (Date.now() - timestamp) > duration;
181
+ }
182
+ }
183
+ if (myMap.has(hashKey) && !isExpired) {
184
+ returnedValue = myMap.get(hashKey);
185
+ }
186
+ else {
187
+ returnedValue = originalMethod.apply(this, args);
188
+ myMap.set(hashKey, returnedValue);
189
+ if (duration > 0) {
190
+ myMap.set(timestampKey, Date.now());
191
+ }
192
+ }
193
+ }
194
+ else {
195
+ if (!this.hasOwnProperty(propMapName)) {
196
+ Object.defineProperty(this, propMapName, {
197
+ configurable: false,
198
+ enumerable: false,
199
+ writable: false,
200
+ value: new Map()
201
+ });
202
+ }
203
+ let myMap = this[propMapName];
204
+ if (Array.isArray(tags)) {
205
+ for (const tag of tags) {
206
+ if (clearCacheTagsMap.has(tag)) {
207
+ clearCacheTagsMap.get(tag).push(myMap);
208
+ }
209
+ else {
210
+ clearCacheTagsMap.set(tag, [myMap]);
211
+ }
212
+ }
213
+ }
214
+ if (hashFunction || args.length > 0 || duration > 0) {
215
+ let hashKey;
216
+ if (hashFunction === true) {
217
+ hashKey = args.map(a => a.toString()).join('!');
218
+ }
219
+ else if (hashFunction) {
220
+ hashKey = hashFunction.apply(this, args);
221
+ }
222
+ else {
223
+ hashKey = args[0];
224
+ }
225
+ const timestampKey = `${hashKey}__timestamp`;
226
+ let isExpired = false;
227
+ if (duration > 0) {
228
+ if (!myMap.has(timestampKey)) {
229
+ isExpired = true;
230
+ }
231
+ else {
232
+ let timestamp = myMap.get(timestampKey);
233
+ isExpired = (Date.now() - timestamp) > duration;
234
+ }
235
+ }
236
+ if (myMap.has(hashKey) && !isExpired) {
237
+ returnedValue = myMap.get(hashKey);
238
+ }
239
+ else {
240
+ returnedValue = originalMethod.apply(this, args);
241
+ myMap.set(hashKey, returnedValue);
242
+ if (duration > 0) {
243
+ myMap.set(timestampKey, Date.now());
244
+ }
245
+ }
246
+ }
247
+ else {
248
+ const hashKey = this;
249
+ if (myMap.has(hashKey)) {
250
+ returnedValue = myMap.get(hashKey);
251
+ }
252
+ else {
253
+ returnedValue = originalMethod.apply(this, args);
254
+ myMap.set(hashKey, returnedValue);
255
+ }
256
+ }
257
+ }
258
+ return returnedValue;
259
+ };
260
+ }
219
261
  //# sourceMappingURL=memoize-decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoize-decorator.js","sourceRoot":"","sources":["../../src/memoize-decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memoize-decorator.js","sourceRoot":"","sources":["../../src/memoize-decorator.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- interface MemoizeArgs {
2
- expiring?: number;
3
- hashFunction?: boolean | ((...args: any[]) => any);
4
- tags?: string[];
5
- useDeepEqual?: boolean;
6
- }
7
- export declare function Memoize(args?: MemoizeArgs | MemoizeArgs['hashFunction']): (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => void;
8
- export declare function MemoizeExpiring(expiring: number, hashFunction?: MemoizeArgs['hashFunction']): (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => void;
9
- export declare function clear(tags: string[]): number;
10
- export {};
1
+ interface MemoizeArgs {
2
+ expiring?: number;
3
+ hashFunction?: boolean | ((...args: any[]) => any);
4
+ tags?: string[];
5
+ useDeepEqual?: boolean;
6
+ }
7
+ export declare function Memoize(args?: MemoizeArgs | MemoizeArgs['hashFunction']): (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => void;
8
+ export declare function MemoizeExpiring(expiring: number, hashFunction?: MemoizeArgs['hashFunction']): (target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) => void;
9
+ export declare function clear(tags: string[]): number;
10
+ export {};