@effijs/props-manager 2.0.14 → 3.0.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.
- package/dist/cjs/Builder/Common.d.ts +15 -4
- package/dist/cjs/Builder/Common.d.ts.map +1 -1
- package/dist/cjs/Builder/Common.js +34 -3
- package/dist/cjs/Builder/Common.js.map +1 -1
- package/dist/cjs/Builder/Parse.d.ts +1 -1
- package/dist/cjs/Builder/Parse.d.ts.map +1 -1
- package/dist/cjs/Builder/Parse.js +9 -9
- package/dist/cjs/Builder/Parse.js.map +1 -1
- package/dist/cjs/Builder/Pattern.d.ts +5 -4
- package/dist/cjs/Builder/Pattern.d.ts.map +1 -1
- package/dist/cjs/Builder/Pattern.js +50 -10
- package/dist/cjs/Builder/Pattern.js.map +1 -1
- package/dist/cjs/Builder/Prop.d.ts +1 -1
- package/dist/cjs/Builder/Prop.d.ts.map +1 -1
- package/dist/cjs/Builder/Prop.js +18 -7
- package/dist/cjs/Builder/Prop.js.map +1 -1
- package/dist/cjs/Builder/Static.d.ts.map +1 -1
- package/dist/cjs/Builder/Static.js +2 -1
- package/dist/cjs/Builder/Static.js.map +1 -1
- package/dist/cjs/Builder/index.d.ts +14 -11
- package/dist/cjs/Builder/index.d.ts.map +1 -1
- package/dist/cjs/Builder/index.js +7 -11
- package/dist/cjs/Builder/index.js.map +1 -1
- package/dist/cjs/Cache/CacheService.d.ts +21 -0
- package/dist/cjs/Cache/CacheService.d.ts.map +1 -0
- package/dist/cjs/Cache/CacheService.js +95 -0
- package/dist/cjs/Cache/CacheService.js.map +1 -0
- package/dist/cjs/Cache/FnRegistry.d.ts +26 -0
- package/dist/cjs/Cache/FnRegistry.d.ts.map +1 -0
- package/dist/cjs/Cache/FnRegistry.js +73 -0
- package/dist/cjs/Cache/FnRegistry.js.map +1 -0
- package/dist/cjs/Cache/KeyRegistry.d.ts +10 -0
- package/dist/cjs/Cache/KeyRegistry.d.ts.map +1 -0
- package/dist/cjs/Cache/KeyRegistry.js +30 -0
- package/dist/cjs/Cache/KeyRegistry.js.map +1 -0
- package/dist/cjs/Cache/utils.d.ts +7 -0
- package/dist/cjs/Cache/utils.d.ts.map +1 -0
- package/dist/cjs/Cache/utils.js +111 -0
- package/dist/cjs/Cache/utils.js.map +1 -0
- package/dist/cjs/PropertyManager/Manager.d.ts +16 -0
- package/dist/cjs/PropertyManager/Manager.d.ts.map +1 -0
- package/dist/cjs/PropertyManager/Manager.js +102 -0
- package/dist/cjs/PropertyManager/Manager.js.map +1 -0
- package/dist/cjs/PropertyManager/Node.d.ts +24 -0
- package/dist/cjs/PropertyManager/Node.d.ts.map +1 -0
- package/dist/cjs/PropertyManager/Node.js +159 -0
- package/dist/cjs/PropertyManager/Node.js.map +1 -0
- package/dist/cjs/Provider/Container.d.ts +10 -0
- package/dist/cjs/Provider/Container.d.ts.map +1 -0
- package/dist/cjs/Provider/Container.js +36 -0
- package/dist/cjs/Provider/Container.js.map +1 -0
- package/dist/cjs/Provider/Provider.d.ts +12 -0
- package/dist/cjs/Provider/Provider.d.ts.map +1 -0
- package/dist/cjs/Provider/Provider.js +30 -0
- package/dist/cjs/Provider/Provider.js.map +1 -0
- package/dist/cjs/Transformer/Base.d.ts +8 -0
- package/dist/cjs/Transformer/Base.d.ts.map +1 -0
- package/dist/cjs/Transformer/Base.js +15 -0
- package/dist/cjs/Transformer/Base.js.map +1 -0
- package/dist/cjs/Transformer/Container.d.ts +6 -0
- package/dist/cjs/Transformer/Container.d.ts.map +1 -0
- package/dist/cjs/Transformer/Container.js +41 -0
- package/dist/cjs/Transformer/Container.js.map +1 -0
- package/dist/cjs/Transformer/index.d.ts +3 -0
- package/dist/cjs/Transformer/index.d.ts.map +1 -0
- package/dist/cjs/Transformer/index.js +8 -0
- package/dist/cjs/Transformer/index.js.map +1 -0
- package/dist/cjs/global/Container.d.ts +13 -0
- package/dist/cjs/global/Container.d.ts.map +1 -0
- package/dist/cjs/global/Container.js +28 -0
- package/dist/cjs/global/Container.js.map +1 -0
- package/dist/cjs/global/store.d.ts +3 -0
- package/dist/cjs/global/store.d.ts.map +1 -0
- package/dist/cjs/global/store.js +13 -0
- package/dist/cjs/global/store.js.map +1 -0
- package/dist/cjs/index.d.ts +9 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +17 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.d.ts +7 -4
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils/deepMerge.d.ts +2 -0
- package/dist/cjs/utils/deepMerge.d.ts.map +1 -0
- package/dist/cjs/utils/deepMerge.js +24 -0
- package/dist/cjs/utils/deepMerge.js.map +1 -0
- package/dist/esm/Builder/Common.d.ts +15 -4
- package/dist/esm/Builder/Common.d.ts.map +1 -1
- package/dist/esm/Builder/Common.js +34 -3
- package/dist/esm/Builder/Common.js.map +1 -1
- package/dist/esm/Builder/Parse.d.ts +1 -1
- package/dist/esm/Builder/Parse.d.ts.map +1 -1
- package/dist/esm/Builder/Parse.js +9 -9
- package/dist/esm/Builder/Parse.js.map +1 -1
- package/dist/esm/Builder/Pattern.d.ts +5 -4
- package/dist/esm/Builder/Pattern.d.ts.map +1 -1
- package/dist/esm/Builder/Pattern.js +50 -10
- package/dist/esm/Builder/Pattern.js.map +1 -1
- package/dist/esm/Builder/Prop.d.ts +1 -1
- package/dist/esm/Builder/Prop.d.ts.map +1 -1
- package/dist/esm/Builder/Prop.js +18 -7
- package/dist/esm/Builder/Prop.js.map +1 -1
- package/dist/esm/Builder/Static.d.ts.map +1 -1
- package/dist/esm/Builder/Static.js +2 -1
- package/dist/esm/Builder/Static.js.map +1 -1
- package/dist/esm/Builder/index.d.ts +14 -11
- package/dist/esm/Builder/index.d.ts.map +1 -1
- package/dist/esm/Builder/index.js +6 -10
- package/dist/esm/Builder/index.js.map +1 -1
- package/dist/esm/Cache/CacheService.d.ts +21 -0
- package/dist/esm/Cache/CacheService.d.ts.map +1 -0
- package/dist/esm/Cache/CacheService.js +91 -0
- package/dist/esm/Cache/CacheService.js.map +1 -0
- package/dist/esm/Cache/FnRegistry.d.ts +26 -0
- package/dist/esm/Cache/FnRegistry.d.ts.map +1 -0
- package/dist/esm/Cache/FnRegistry.js +69 -0
- package/dist/esm/Cache/FnRegistry.js.map +1 -0
- package/dist/esm/Cache/KeyRegistry.d.ts +10 -0
- package/dist/esm/Cache/KeyRegistry.d.ts.map +1 -0
- package/dist/esm/Cache/KeyRegistry.js +26 -0
- package/dist/esm/Cache/KeyRegistry.js.map +1 -0
- package/dist/esm/Cache/utils.d.ts +7 -0
- package/dist/esm/Cache/utils.d.ts.map +1 -0
- package/dist/esm/Cache/utils.js +105 -0
- package/dist/esm/Cache/utils.js.map +1 -0
- package/dist/esm/PropertyManager/Manager.d.ts +16 -0
- package/dist/esm/PropertyManager/Manager.d.ts.map +1 -0
- package/dist/esm/PropertyManager/Manager.js +98 -0
- package/dist/esm/PropertyManager/Manager.js.map +1 -0
- package/dist/esm/PropertyManager/Node.d.ts +24 -0
- package/dist/esm/PropertyManager/Node.d.ts.map +1 -0
- package/dist/esm/PropertyManager/Node.js +155 -0
- package/dist/esm/PropertyManager/Node.js.map +1 -0
- package/dist/esm/Provider/Container.d.ts +10 -0
- package/dist/esm/Provider/Container.d.ts.map +1 -0
- package/dist/esm/Provider/Container.js +32 -0
- package/dist/esm/Provider/Container.js.map +1 -0
- package/dist/esm/Provider/Provider.d.ts +12 -0
- package/dist/esm/Provider/Provider.d.ts.map +1 -0
- package/dist/esm/Provider/Provider.js +26 -0
- package/dist/esm/Provider/Provider.js.map +1 -0
- package/dist/esm/Transformer/Base.d.ts +8 -0
- package/dist/esm/Transformer/Base.d.ts.map +1 -0
- package/dist/esm/Transformer/Base.js +11 -0
- package/dist/esm/Transformer/Base.js.map +1 -0
- package/dist/esm/Transformer/Container.d.ts +6 -0
- package/dist/esm/Transformer/Container.d.ts.map +1 -0
- package/dist/esm/Transformer/Container.js +37 -0
- package/dist/esm/Transformer/Container.js.map +1 -0
- package/dist/esm/Transformer/index.d.ts +3 -0
- package/dist/esm/Transformer/index.d.ts.map +1 -0
- package/dist/esm/Transformer/index.js +3 -0
- package/dist/esm/Transformer/index.js.map +1 -0
- package/dist/esm/global/Container.d.ts +13 -0
- package/dist/esm/global/Container.d.ts.map +1 -0
- package/dist/esm/global/Container.js +24 -0
- package/dist/esm/global/Container.js.map +1 -0
- package/dist/esm/global/store.d.ts +3 -0
- package/dist/esm/global/store.d.ts.map +1 -0
- package/dist/esm/global/store.js +10 -0
- package/dist/esm/global/store.js.map +1 -0
- package/dist/esm/index.d.ts +9 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +16 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +7 -4
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/deepMerge.d.ts +2 -0
- package/dist/esm/utils/deepMerge.d.ts.map +1 -0
- package/dist/esm/utils/deepMerge.js +21 -0
- package/dist/esm/utils/deepMerge.js.map +1 -0
- package/dist/types/Builder/Common.d.ts +15 -4
- package/dist/types/Builder/Common.d.ts.map +1 -1
- package/dist/types/Builder/Parse.d.ts +1 -1
- package/dist/types/Builder/Parse.d.ts.map +1 -1
- package/dist/types/Builder/Pattern.d.ts +5 -4
- package/dist/types/Builder/Pattern.d.ts.map +1 -1
- package/dist/types/Builder/Prop.d.ts +1 -1
- package/dist/types/Builder/Prop.d.ts.map +1 -1
- package/dist/types/Builder/Static.d.ts.map +1 -1
- package/dist/types/Builder/index.d.ts +14 -11
- package/dist/types/Builder/index.d.ts.map +1 -1
- package/dist/types/Cache/CacheService.d.ts +21 -0
- package/dist/types/Cache/CacheService.d.ts.map +1 -0
- package/dist/types/Cache/FnRegistry.d.ts +26 -0
- package/dist/types/Cache/FnRegistry.d.ts.map +1 -0
- package/dist/types/Cache/KeyRegistry.d.ts +10 -0
- package/dist/types/Cache/KeyRegistry.d.ts.map +1 -0
- package/dist/types/Cache/utils.d.ts +7 -0
- package/dist/types/Cache/utils.d.ts.map +1 -0
- package/dist/types/PropertyManager/Manager.d.ts +16 -0
- package/dist/types/PropertyManager/Manager.d.ts.map +1 -0
- package/dist/types/PropertyManager/Node.d.ts +24 -0
- package/dist/types/PropertyManager/Node.d.ts.map +1 -0
- package/dist/types/Provider/Container.d.ts +10 -0
- package/dist/types/Provider/Container.d.ts.map +1 -0
- package/dist/types/Provider/Provider.d.ts +12 -0
- package/dist/types/Provider/Provider.d.ts.map +1 -0
- package/dist/types/Transformer/Base.d.ts +8 -0
- package/dist/types/Transformer/Base.d.ts.map +1 -0
- package/dist/types/Transformer/Container.d.ts +6 -0
- package/dist/types/Transformer/Container.d.ts.map +1 -0
- package/dist/types/Transformer/index.d.ts +3 -0
- package/dist/types/Transformer/index.d.ts.map +1 -0
- package/dist/types/global/Container.d.ts +13 -0
- package/dist/types/global/Container.d.ts.map +1 -0
- package/dist/types/global/store.d.ts +3 -0
- package/dist/types/global/store.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +7 -4
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/deepMerge.d.ts +2 -0
- package/dist/types/utils/deepMerge.d.ts.map +1 -0
- package/package.json +16 -12
- package/README.md +0 -653
- package/dist/cjs/Builder/Provider.d.ts +0 -13
- package/dist/cjs/Builder/Provider.d.ts.map +0 -1
- package/dist/cjs/Builder/Provider.js +0 -34
- package/dist/cjs/Builder/Provider.js.map +0 -1
- package/dist/cjs/DataProvider.d.ts +0 -12
- package/dist/cjs/DataProvider.d.ts.map +0 -1
- package/dist/cjs/DataProvider.js +0 -40
- package/dist/cjs/DataProvider.js.map +0 -1
- package/dist/cjs/PropertyManager.d.ts +0 -32
- package/dist/cjs/PropertyManager.d.ts.map +0 -1
- package/dist/cjs/PropertyManager.js +0 -217
- package/dist/cjs/PropertyManager.js.map +0 -1
- package/dist/cjs/react/PMMemo.d.ts +0 -7
- package/dist/cjs/react/PMMemo.d.ts.map +0 -1
- package/dist/cjs/react/PMMemo.js +0 -11
- package/dist/cjs/react/PMMemo.js.map +0 -1
- package/dist/cjs/react/PMMemo.spec.d.ts +0 -2
- package/dist/cjs/react/PMMemo.spec.d.ts.map +0 -1
- package/dist/cjs/react/PMMemo.spec.js +0 -35
- package/dist/cjs/react/PMMemo.spec.js.map +0 -1
- package/dist/cjs/utils.d.ts +0 -8
- package/dist/cjs/utils.d.ts.map +0 -1
- package/dist/cjs/utils.js +0 -76
- package/dist/cjs/utils.js.map +0 -1
- package/dist/esm/Builder/Provider.d.ts +0 -13
- package/dist/esm/Builder/Provider.d.ts.map +0 -1
- package/dist/esm/Builder/Provider.js +0 -30
- package/dist/esm/Builder/Provider.js.map +0 -1
- package/dist/esm/DataProvider.d.ts +0 -12
- package/dist/esm/DataProvider.d.ts.map +0 -1
- package/dist/esm/DataProvider.js +0 -36
- package/dist/esm/DataProvider.js.map +0 -1
- package/dist/esm/PropertyManager.d.ts +0 -32
- package/dist/esm/PropertyManager.d.ts.map +0 -1
- package/dist/esm/PropertyManager.js +0 -213
- package/dist/esm/PropertyManager.js.map +0 -1
- package/dist/esm/react/PMMemo.d.ts +0 -7
- package/dist/esm/react/PMMemo.d.ts.map +0 -1
- package/dist/esm/react/PMMemo.js +0 -9
- package/dist/esm/react/PMMemo.js.map +0 -1
- package/dist/esm/react/PMMemo.spec.d.ts +0 -2
- package/dist/esm/react/PMMemo.spec.d.ts.map +0 -1
- package/dist/esm/react/PMMemo.spec.js +0 -30
- package/dist/esm/react/PMMemo.spec.js.map +0 -1
- package/dist/esm/utils.d.ts +0 -8
- package/dist/esm/utils.d.ts.map +0 -1
- package/dist/esm/utils.js +0 -68
- package/dist/esm/utils.js.map +0 -1
- package/dist/types/Builder/Provider.d.ts +0 -13
- package/dist/types/Builder/Provider.d.ts.map +0 -1
- package/dist/types/DataProvider.d.ts +0 -12
- package/dist/types/DataProvider.d.ts.map +0 -1
- package/dist/types/PropertyManager.d.ts +0 -32
- package/dist/types/PropertyManager.d.ts.map +0 -1
- package/dist/types/react/PMMemo.d.ts +0 -7
- package/dist/types/react/PMMemo.d.ts.map +0 -1
- package/dist/types/react/PMMemo.spec.d.ts +0 -2
- package/dist/types/react/PMMemo.spec.d.ts.map +0 -1
- package/dist/types/utils.d.ts +0 -8
- package/dist/types/utils.d.ts.map +0 -1
|
@@ -1,16 +1,56 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getGlobalCore } from '../global/store';
|
|
2
2
|
import { Builder } from './Common';
|
|
3
|
+
import { deepMerge } from '../utils/deepMerge';
|
|
3
4
|
export class Pattern extends Builder {
|
|
4
|
-
constructor(pattern, values) {
|
|
5
|
+
constructor(pattern, values, options) {
|
|
6
|
+
var _a, _b, _c, _d;
|
|
5
7
|
super([]);
|
|
6
8
|
this.pattern = pattern;
|
|
7
9
|
this.data = new Map();
|
|
8
|
-
this.
|
|
10
|
+
this.patternExtractors = new Map();
|
|
11
|
+
this.options = options;
|
|
12
|
+
if (typeof values === 'function') {
|
|
13
|
+
if (!((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.length) || this.isAllProvidersAccessible()) {
|
|
14
|
+
this.values = Object.entries(values(this.getProvidersData() || {}) || {});
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this.isReady = false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this.values = Object.entries(values);
|
|
22
|
+
}
|
|
23
|
+
if (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.providers) === null || _d === void 0 ? void 0 : _d.length) && typeof values === 'function') {
|
|
24
|
+
const waitForAllProviders = new Set(this.options.providers);
|
|
25
|
+
const listener = (provider) => () => {
|
|
26
|
+
var _a;
|
|
27
|
+
waitForAllProviders.delete(provider);
|
|
28
|
+
if (waitForAllProviders.size) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.values = Object.entries(values(this.getProvidersData() || {}));
|
|
32
|
+
for (const [pattern, extractor] of this.patternExtractors) {
|
|
33
|
+
this.key(pattern, extractor, true);
|
|
34
|
+
}
|
|
35
|
+
if (!this.isReady) {
|
|
36
|
+
(_a = this.onWillReadyHandler) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
for (const provider of this.options.providers) {
|
|
40
|
+
getGlobalCore().providers.addListener(provider, listener(provider));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
9
43
|
}
|
|
10
|
-
key(pattern, extractor) {
|
|
11
|
-
|
|
44
|
+
key(pattern, extractor, skipCache) {
|
|
45
|
+
var _a;
|
|
46
|
+
if (!skipCache) {
|
|
47
|
+
this.patternExtractors.set(pattern, extractor);
|
|
48
|
+
}
|
|
49
|
+
(_a = this.values) === null || _a === void 0 ? void 0 : _a.forEach(([replacer, value]) => {
|
|
12
50
|
const key = pattern.replace(this.pattern, replacer);
|
|
13
|
-
this.keys.
|
|
51
|
+
if (!this.keys.includes(key)) {
|
|
52
|
+
this.keys.push(key);
|
|
53
|
+
}
|
|
14
54
|
if (typeof extractor === 'string') {
|
|
15
55
|
this.data.set(key, { [extractor]: value });
|
|
16
56
|
}
|
|
@@ -20,11 +60,11 @@ export class Pattern extends Builder {
|
|
|
20
60
|
});
|
|
21
61
|
return this;
|
|
22
62
|
}
|
|
23
|
-
extract(props) {
|
|
63
|
+
extract(props, keys) {
|
|
24
64
|
let res = {};
|
|
25
|
-
for (const
|
|
26
|
-
if (
|
|
27
|
-
res =
|
|
65
|
+
for (const key of keys) {
|
|
66
|
+
if (props[key] && this.data.has(key)) {
|
|
67
|
+
res = deepMerge(res, this.data.get(key));
|
|
28
68
|
}
|
|
29
69
|
}
|
|
30
70
|
return res;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../../src/Builder/Pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../../src/Builder/Pattern.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { THandle, TObject, TOptions, TProps } from '../types';
|
|
2
2
|
import { Builder } from './Common';
|
|
3
3
|
export declare class Prop extends Builder {
|
|
4
|
-
private readonly options;
|
|
5
4
|
private readonly obj?;
|
|
6
5
|
private readonly handle?;
|
|
7
6
|
private readonly key?;
|
|
8
7
|
constructor(keys: string[], extractor?: THandle | TObject | string | undefined, options?: TOptions);
|
|
9
8
|
extract(props: TProps): TObject;
|
|
9
|
+
getUsedProviders(props: TProps): string[] | false;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=Prop.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prop.d.ts","sourceRoot":"","sources":["../../../src/Builder/Prop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Prop.d.ts","sourceRoot":"","sources":["../../../src/Builder/Prop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAOnC,qBAAa,IAAK,SAAQ,OAAO;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAS;gBAG5B,IAAI,EAAE,MAAM,EAAE,EACd,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE,QAAQ;IAapB,OAAO,CAAC,KAAK,EAAE,MAAM;IAyBrB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK;CAQlD"}
|
package/dist/esm/Builder/Prop.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Builder } from './Common';
|
|
2
|
+
import { deepMerge } from '../utils/deepMerge';
|
|
2
3
|
const OPTIONS = {
|
|
3
4
|
nullWhenFirstKeyNull: true,
|
|
4
5
|
};
|
|
@@ -17,27 +18,37 @@ export class Prop extends Builder {
|
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
extract(props) {
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
var _a;
|
|
22
|
+
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.nullWhenFirstKeyNull) {
|
|
23
|
+
if (!(props === null || props === void 0 ? void 0 : props[this.keys[0]])) {
|
|
22
24
|
return {};
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
if (this.handle) {
|
|
26
|
-
return this.handle(
|
|
28
|
+
return this.handle(props, this.getProvidersData());
|
|
27
29
|
}
|
|
28
30
|
else if (this.obj) {
|
|
29
|
-
return this.obj;
|
|
31
|
+
return deepMerge({}, this.obj);
|
|
30
32
|
}
|
|
31
33
|
else if (this.key) {
|
|
32
|
-
return
|
|
34
|
+
return { [this.key]: props[this.keys[0]] };
|
|
33
35
|
}
|
|
34
36
|
const res = {};
|
|
35
37
|
for (const key of this.keys) {
|
|
36
|
-
if (
|
|
37
|
-
res[key] = props
|
|
38
|
+
if (Object.prototype.hasOwnProperty.call(props, key)) {
|
|
39
|
+
res[key] = props[key];
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
return res;
|
|
41
43
|
}
|
|
44
|
+
getUsedProviders(props) {
|
|
45
|
+
var _a, _b;
|
|
46
|
+
return ((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.length) &&
|
|
47
|
+
((this.options.nullWhenFirstKeyNull && (props === null || props === void 0 ? void 0 : props[this.keys[0]])) ||
|
|
48
|
+
!this.options.nullWhenFirstKeyNull) &&
|
|
49
|
+
this.handle
|
|
50
|
+
? this.options.providers
|
|
51
|
+
: false;
|
|
52
|
+
}
|
|
42
53
|
}
|
|
43
54
|
//# sourceMappingURL=Prop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prop.js","sourceRoot":"","sources":["../../../src/Builder/Prop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Prop.js","sourceRoot":"","sources":["../../../src/Builder/Prop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,GAAa;IACxB,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,MAAM,OAAO,IAAK,SAAQ,OAAO;IAK/B,YACE,IAAc,EACd,SAAkD,EAClD,OAAkB;QAElB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,SAAoB,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/D,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAa;;QACnB,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,oBAAoB,EAAE,CAAC;YACvC,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,EAAE,CAAC;gBAC3B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,GAAG,GAAG,EAA6B,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gBAAgB,CAAC,KAAa;;QAC5B,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,SAAS,0CAAE,MAAM;YACpC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;gBAC3D,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACrC,IAAI,CAAC,MAAM;YACX,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;YACxB,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Static.d.ts","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Static.d.ts","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,qBAAa,MAAO,SAAQ,OAAO;IACrB,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAIlD,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Builder } from './Common';
|
|
2
|
+
import { deepMerge } from '../utils/deepMerge';
|
|
2
3
|
export class Static extends Builder {
|
|
3
4
|
constructor(data) {
|
|
4
5
|
super(['*']);
|
|
5
6
|
this.data = data;
|
|
6
7
|
}
|
|
7
8
|
extract() {
|
|
8
|
-
return this.data;
|
|
9
|
+
return deepMerge({}, this.data);
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=Static.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Static.js","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Static.js","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,MAAO,SAAQ,OAAO;IACjC,YAAoB,IAA8B;QAChD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QADK,SAAI,GAAJ,IAAI,CAA0B;IAElD,CAAC;IAED,OAAO;QACL,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Node as NodeManager } from '../PropertyManager/Node';
|
|
2
2
|
import { Prop as PropBuilder } from './Prop';
|
|
3
|
-
import type { THandle, TObject, TOptions, TChild, TPattern } from '../types';
|
|
4
3
|
import { Pattern as PatternBuilder } from './Pattern';
|
|
5
4
|
import { Static as StaticBuilder } from './Static';
|
|
6
|
-
import { PropertyManager } from '../PropertyManager';
|
|
7
|
-
import { Provider as ProviderBuilder } from './Provider';
|
|
8
5
|
import { Parser as ParseBuilder } from './Parse';
|
|
6
|
+
import type { TObject, TOptions, TPattern, TPatternValue } from '../types';
|
|
7
|
+
type AnyObject = Record<string, any>;
|
|
8
|
+
type Handle<TProps, TProviders, TResult = any> = (props: TProps, providers: TProviders) => TResult;
|
|
9
|
+
type Options<TProviders extends AnyObject> = {
|
|
10
|
+
nullWhenFirstKeyNull?: boolean;
|
|
11
|
+
providers?: (keyof TProviders)[];
|
|
12
|
+
};
|
|
9
13
|
declare class Builder {
|
|
10
|
-
static Prop(key: string, property
|
|
11
|
-
static Prop(key:
|
|
12
|
-
static Prop(key: string | string[],
|
|
13
|
-
static Pattern(pattern: string, values:
|
|
14
|
+
static Prop(key: string, property?: string): PropBuilder;
|
|
15
|
+
static Prop<TKey extends string, TProviders extends AnyObject = {}, TResult = any>(key: TKey | TKey[], extractor: Handle<Record<TKey, any>, TProviders, TResult>, options?: Options<TProviders>): PropBuilder;
|
|
16
|
+
static Prop<TObject extends AnyObject, TProviders extends AnyObject = {}>(key: string | string[], extractor?: TObject, options?: Options<TProviders>): PropBuilder;
|
|
17
|
+
static Pattern(pattern: string, values: TPatternValue, options?: TOptions): PatternBuilder;
|
|
14
18
|
static Static(data: TObject): StaticBuilder;
|
|
15
|
-
static
|
|
16
|
-
static Provider(name: string, handle: (data: any) => CommonBuilder): ProviderBuilder;
|
|
19
|
+
static Node(name: string): NodeManager;
|
|
17
20
|
static Parse(pattern: TPattern, toData: (value: string) => Record<string, any>): ParseBuilder;
|
|
18
21
|
}
|
|
19
|
-
export declare const Prop: typeof Builder.Prop, Pattern: typeof Builder.Pattern, Static: typeof Builder.Static,
|
|
22
|
+
export declare const Prop: typeof Builder.Prop, Pattern: typeof Builder.Pattern, Static: typeof Builder.Static, Node: typeof Builder.Node, Parse: typeof Builder.Parse;
|
|
20
23
|
export {};
|
|
21
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAW,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEpF,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAErC,KAAK,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,KAAK,OAAO,CAAC;AAEnG,KAAK,OAAO,CAAC,UAAU,SAAS,SAAS,IAAI;IAC3C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC;CAClC,CAAC;AAEF,cAAM,OAAO;IACX,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW;IAExD,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,SAAS,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAC/E,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,EACzD,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC5B,WAAW;IAEd,MAAM,CAAC,IAAI,CAAC,OAAO,SAAS,SAAS,EAAE,UAAU,SAAS,SAAS,GAAG,EAAE,EACtE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EACtB,SAAS,CAAC,EAAE,OAAO,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC5B,WAAW;IAmBd,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,cAAc;IAI1F,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa;IAI3C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAItC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY;CAG9F;AAED,eAAO,MAAQ,IAAI,uBAAE,OAAO,0BAAE,MAAM,yBAAE,IAAI,uBAAE,KAAK,sBAAY,CAAC"}
|
|
@@ -1,29 +1,25 @@
|
|
|
1
|
+
import { Node as NodeManager } from '../PropertyManager/Node';
|
|
1
2
|
import { Prop as PropBuilder } from './Prop';
|
|
2
3
|
import { Pattern as PatternBuilder } from './Pattern';
|
|
3
4
|
import { Static as StaticBuilder } from './Static';
|
|
4
|
-
import { PropertyManager } from '../PropertyManager';
|
|
5
|
-
import { Provider as ProviderBuilder } from './Provider';
|
|
6
5
|
import { Parser as ParseBuilder } from './Parse';
|
|
7
6
|
class Builder {
|
|
8
7
|
static Prop(key, extractor, options) {
|
|
9
8
|
const keys = Array.isArray(key) ? key : [key];
|
|
10
9
|
return new PropBuilder(keys, extractor, options);
|
|
11
10
|
}
|
|
12
|
-
static Pattern(pattern, values) {
|
|
13
|
-
return new PatternBuilder(pattern, values);
|
|
11
|
+
static Pattern(pattern, values, options) {
|
|
12
|
+
return new PatternBuilder(pattern, values, options);
|
|
14
13
|
}
|
|
15
14
|
static Static(data) {
|
|
16
15
|
return new StaticBuilder(data);
|
|
17
16
|
}
|
|
18
|
-
static
|
|
19
|
-
return new
|
|
20
|
-
}
|
|
21
|
-
static Provider(name, handle) {
|
|
22
|
-
return new ProviderBuilder(name, handle);
|
|
17
|
+
static Node(name) {
|
|
18
|
+
return new NodeManager(name);
|
|
23
19
|
}
|
|
24
20
|
static Parse(pattern, toData) {
|
|
25
21
|
return new ParseBuilder(pattern, toData);
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
|
-
export const { Prop, Pattern, Static,
|
|
24
|
+
export const { Prop, Pattern, Static, Node, Parse } = Builder;
|
|
29
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Builder/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAajD,MAAM,OAAO;IAeX,MAAM,CAAC,IAAI,CAAC,GAAsB,EAAE,SAAe,EAAE,OAAa;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAcD,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,MAAqB,EAAE,OAAkB;QACvE,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAa;QACzB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACtB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,MAA8C;QAC5E,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FnRegistry } from './FnRegistry';
|
|
2
|
+
export interface CacheResult<TResult> {
|
|
3
|
+
result?: TResult;
|
|
4
|
+
fnr: FnRegistry;
|
|
5
|
+
key: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class CacheService<TResult> {
|
|
8
|
+
private readonly store;
|
|
9
|
+
private keyRegistry;
|
|
10
|
+
getCacheKey(input: Record<string, any>): {
|
|
11
|
+
key: string;
|
|
12
|
+
fnr: FnRegistry;
|
|
13
|
+
};
|
|
14
|
+
get(input: Record<string, any>): CacheResult<TResult>;
|
|
15
|
+
set(key: string, result: TResult, fnr: FnRegistry): void;
|
|
16
|
+
delete(key: string): void;
|
|
17
|
+
has(key: string): boolean;
|
|
18
|
+
get size(): number;
|
|
19
|
+
clear(): void;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=CacheService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheService.d.ts","sourceRoot":"","sources":["../../../src/Cache/CacheService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAoB1C,MAAM,WAAW,WAAW,CAAC,OAAO;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,YAAY,CAAC,OAAO;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,WAAW,CAAqB;IAExC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;IAMtC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;IA8DrD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAmBxD,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { KeyRegistry } from './KeyRegistry';
|
|
2
|
+
import { FnRegistry } from './FnRegistry';
|
|
3
|
+
import { getCacheKey, mapFunctions } from './utils';
|
|
4
|
+
export class CacheService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.store = new Map();
|
|
7
|
+
this.keyRegistry = new KeyRegistry();
|
|
8
|
+
}
|
|
9
|
+
getCacheKey(input) {
|
|
10
|
+
const fnr = new FnRegistry();
|
|
11
|
+
const key = getCacheKey(input, fnr, this.keyRegistry);
|
|
12
|
+
return { key, fnr };
|
|
13
|
+
}
|
|
14
|
+
get(input) {
|
|
15
|
+
var _a;
|
|
16
|
+
const { key, fnr } = this.getCacheKey(input);
|
|
17
|
+
const entry = this.store.get(key);
|
|
18
|
+
if (!entry) {
|
|
19
|
+
return {
|
|
20
|
+
key,
|
|
21
|
+
fnr,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
if (!entry.fnr.equalTo(fnr)) {
|
|
25
|
+
if (((_a = entry.compare) === null || _a === void 0 ? void 0 : _a.hasAll) && !entry.compare.hasNew) {
|
|
26
|
+
for (const [fn, paths] of entry.compare.missing.fnPaths) {
|
|
27
|
+
for (const [input, output] of paths) {
|
|
28
|
+
const newFn = fnr.get(input);
|
|
29
|
+
const keys = output.split('.');
|
|
30
|
+
const lastKey = keys.pop();
|
|
31
|
+
let node = entry.result;
|
|
32
|
+
for (let i = 0; i < keys.length; i++) {
|
|
33
|
+
const id = this.keyRegistry.get(keys[i]);
|
|
34
|
+
node = node === null || node === void 0 ? void 0 : node[id];
|
|
35
|
+
}
|
|
36
|
+
if (node && lastKey) {
|
|
37
|
+
const id = this.keyRegistry.get(lastKey);
|
|
38
|
+
node[id] = newFn;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
entry.compare.missing.fnPaths.clear();
|
|
43
|
+
entry.compare.missing.notUses.clear();
|
|
44
|
+
entry.compare.newly.fnPaths.clear();
|
|
45
|
+
entry.compare.newly.notUses.clear();
|
|
46
|
+
this.set(key, entry.result, fnr);
|
|
47
|
+
return {
|
|
48
|
+
key,
|
|
49
|
+
fnr,
|
|
50
|
+
result: entry.result,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
key,
|
|
55
|
+
fnr,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
key,
|
|
60
|
+
fnr,
|
|
61
|
+
result: entry.result,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
set(key, result, fnr) {
|
|
65
|
+
if (this.store.has(key)) {
|
|
66
|
+
const entry = this.store.get(key);
|
|
67
|
+
entry.fnr.clear();
|
|
68
|
+
}
|
|
69
|
+
const ofnr = new FnRegistry();
|
|
70
|
+
mapFunctions(result, '', ofnr, this.keyRegistry);
|
|
71
|
+
const compare = fnr.compare(ofnr);
|
|
72
|
+
this.store.set(key, {
|
|
73
|
+
result,
|
|
74
|
+
fnr,
|
|
75
|
+
compare,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
delete(key) {
|
|
79
|
+
this.store.delete(key);
|
|
80
|
+
}
|
|
81
|
+
has(key) {
|
|
82
|
+
return this.store.has(key);
|
|
83
|
+
}
|
|
84
|
+
get size() {
|
|
85
|
+
return this.store.size;
|
|
86
|
+
}
|
|
87
|
+
clear() {
|
|
88
|
+
this.store.clear();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=CacheService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheService.js","sourceRoot":"","sources":["../../../src/Cache/CacheService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare class FnRegistry {
|
|
2
|
+
private readonly map;
|
|
3
|
+
set(key: string, fn: Function): void;
|
|
4
|
+
get(key: string): Function | undefined;
|
|
5
|
+
equalTo(registry: FnRegistry): boolean;
|
|
6
|
+
diff(registry: FnRegistry): Map<string, Function>;
|
|
7
|
+
find(registry: FnRegistry): {
|
|
8
|
+
fnPaths: Map<Function, Set<string[]>>;
|
|
9
|
+
notUses: Map<Function, string>;
|
|
10
|
+
};
|
|
11
|
+
compare(registry: FnRegistry): {
|
|
12
|
+
hasAll: boolean;
|
|
13
|
+
hasNew: boolean;
|
|
14
|
+
missing: {
|
|
15
|
+
fnPaths: Map<Function, Set<string[]>>;
|
|
16
|
+
notUses: Map<Function, string>;
|
|
17
|
+
};
|
|
18
|
+
newly: {
|
|
19
|
+
fnPaths: Map<Function, Set<string[]>>;
|
|
20
|
+
notUses: Map<Function, string>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
get size(): number;
|
|
24
|
+
clear(): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=FnRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FnRegistry.d.ts","sourceRoot":"","sources":["../../../src/Cache/FnRegistry.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA+B;IAEnD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,OAAO,CAAC,QAAQ,EAAE,UAAU;IAQ5B,IAAI,CAAC,QAAQ,EAAE,UAAU;IAQzB,IAAI,CAAC,QAAQ,EAAE,UAAU;;;;IAyBzB,OAAO,CAAC,QAAQ,EAAE,UAAU;;;;;;;;;;;;IAY5B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK;CAGN"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export class FnRegistry {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.map = new Map();
|
|
4
|
+
}
|
|
5
|
+
set(key, fn) {
|
|
6
|
+
this.map.set(key, fn);
|
|
7
|
+
}
|
|
8
|
+
get(key) {
|
|
9
|
+
return this.map.get(key);
|
|
10
|
+
}
|
|
11
|
+
equalTo(registry) {
|
|
12
|
+
if (this.map.size !== registry.map.size)
|
|
13
|
+
return false;
|
|
14
|
+
for (const [path, fn] of this.map) {
|
|
15
|
+
if (registry.map.get(path) !== fn)
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
diff(registry) {
|
|
21
|
+
const diff = new Map();
|
|
22
|
+
for (const [path, fn] of this.map) {
|
|
23
|
+
if (registry.map.get(path) !== fn)
|
|
24
|
+
diff.set(path, fn);
|
|
25
|
+
}
|
|
26
|
+
return diff;
|
|
27
|
+
}
|
|
28
|
+
find(registry) {
|
|
29
|
+
const fnPaths = new Map();
|
|
30
|
+
const notUses = new Map();
|
|
31
|
+
let found;
|
|
32
|
+
for (const [path, fn] of this.map) {
|
|
33
|
+
found = false;
|
|
34
|
+
for (const [path2, fn2] of registry.map) {
|
|
35
|
+
if (fn === fn2) {
|
|
36
|
+
found = true;
|
|
37
|
+
if (!fnPaths.has(fn))
|
|
38
|
+
fnPaths.set(fn, new Set());
|
|
39
|
+
const paths = fnPaths.get(fn);
|
|
40
|
+
paths === null || paths === void 0 ? void 0 : paths.add([path, path2]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (!found) {
|
|
44
|
+
notUses.set(fn, path);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
fnPaths,
|
|
49
|
+
notUses,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
compare(registry) {
|
|
53
|
+
const missing = this.find(registry);
|
|
54
|
+
const newly = registry.find(this);
|
|
55
|
+
return {
|
|
56
|
+
hasAll: missing.notUses.size === 0,
|
|
57
|
+
hasNew: newly.notUses.size > 0,
|
|
58
|
+
missing,
|
|
59
|
+
newly,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
get size() {
|
|
63
|
+
return this.map.size;
|
|
64
|
+
}
|
|
65
|
+
clear() {
|
|
66
|
+
this.map.clear();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=FnRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FnRegistry.js","sourceRoot":"","sources":["../../../src/Cache/FnRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class KeyRegistry {
|
|
2
|
+
private readonly map;
|
|
3
|
+
private readonly inverted;
|
|
4
|
+
private counter;
|
|
5
|
+
id(key: string): string;
|
|
6
|
+
get(key: string): string;
|
|
7
|
+
dump(): Record<string, string>;
|
|
8
|
+
get size(): number;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=KeyRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyRegistry.d.ts","sourceRoot":"","sources":["../../../src/Cache/KeyRegistry.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,OAAO,CAAK;IAEpB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxB,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9B,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class KeyRegistry {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.map = new Map();
|
|
4
|
+
this.inverted = new Map();
|
|
5
|
+
this.counter = 0;
|
|
6
|
+
}
|
|
7
|
+
id(key) {
|
|
8
|
+
let id = this.map.get(key);
|
|
9
|
+
if (id === undefined) {
|
|
10
|
+
id = (this.counter++).toString(36);
|
|
11
|
+
this.map.set(key, id);
|
|
12
|
+
this.inverted.set(id, key);
|
|
13
|
+
}
|
|
14
|
+
return id;
|
|
15
|
+
}
|
|
16
|
+
get(key) {
|
|
17
|
+
return this.inverted.get(key);
|
|
18
|
+
}
|
|
19
|
+
dump() {
|
|
20
|
+
return Object.fromEntries(this.map);
|
|
21
|
+
}
|
|
22
|
+
get size() {
|
|
23
|
+
return this.map.size;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=KeyRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyRegistry.js","sourceRoot":"","sources":["../../../src/Cache/KeyRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAAxB;QACmB,QAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChC,aAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,YAAO,GAAG,CAAC,CAAC;IAuBtB,CAAC;IArBC,EAAE,CAAC,GAAW;QACZ,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACjC,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { KeyRegistry } from './KeyRegistry';
|
|
2
|
+
import { FnRegistry } from './FnRegistry';
|
|
3
|
+
export declare function djb2(str: string): string;
|
|
4
|
+
export declare function mapper(data: any, path: string, fnRegistry: FnRegistry, keyRegistry: KeyRegistry): string;
|
|
5
|
+
export declare function mapFunctions(data: any, path: string, fnRegistry: FnRegistry, keyRegistry: KeyRegistry): void;
|
|
6
|
+
export declare function getCacheKey(obj: object, fnRegistry: FnRegistry, keyRegistry: KeyRegistry): string;
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/Cache/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOxC;AAED,wBAAgB,MAAM,CACpB,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,GACvB,MAAM,CAmER;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,QA4CzB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAEjG"}
|