@effijs/props-manager 2.0.15 → 3.0.1
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/{esm/Transformers → cjs/Transformer}/Base.d.ts +2 -2
- package/dist/cjs/Transformer/Base.d.ts.map +1 -0
- package/dist/cjs/{Transformers → Transformer}/Base.js +3 -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.map +1 -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 -5
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +17 -9
- 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/{types/Transformers → esm/Transformer}/Base.d.ts +2 -2
- package/dist/esm/Transformer/Base.d.ts.map +1 -0
- package/dist/esm/{Transformers → Transformer}/Base.js +3 -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.map +1 -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 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +16 -4
- 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/{cjs/Transformers → types/Transformer}/Base.d.ts +2 -2
- 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.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 -5
- 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 -35
- package/dist/cjs/PropertyManager.d.ts.map +0 -1
- package/dist/cjs/PropertyManager.js +0 -226
- package/dist/cjs/PropertyManager.js.map +0 -1
- package/dist/cjs/Transformers/Base.d.ts.map +0 -1
- package/dist/cjs/Transformers/Base.js.map +0 -1
- package/dist/cjs/Transformers/Container.d.ts +0 -10
- package/dist/cjs/Transformers/Container.d.ts.map +0 -1
- package/dist/cjs/Transformers/Container.js +0 -23
- package/dist/cjs/Transformers/Container.js.map +0 -1
- package/dist/cjs/Transformers/ValueTransformer.d.ts +0 -10
- package/dist/cjs/Transformers/ValueTransformer.d.ts.map +0 -1
- package/dist/cjs/Transformers/ValueTransformer.js +0 -29
- package/dist/cjs/Transformers/ValueTransformer.js.map +0 -1
- package/dist/cjs/Transformers/index.d.ts.map +0 -1
- package/dist/cjs/Transformers/index.js.map +0 -1
- package/dist/cjs/const.d.ts +0 -5
- package/dist/cjs/const.d.ts.map +0 -1
- package/dist/cjs/const.js +0 -9
- package/dist/cjs/const.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 -35
- package/dist/esm/PropertyManager.d.ts.map +0 -1
- package/dist/esm/PropertyManager.js +0 -222
- package/dist/esm/PropertyManager.js.map +0 -1
- package/dist/esm/Transformers/Base.d.ts.map +0 -1
- package/dist/esm/Transformers/Base.js.map +0 -1
- package/dist/esm/Transformers/Container.d.ts +0 -10
- package/dist/esm/Transformers/Container.d.ts.map +0 -1
- package/dist/esm/Transformers/Container.js +0 -19
- package/dist/esm/Transformers/Container.js.map +0 -1
- package/dist/esm/Transformers/ValueTransformer.d.ts +0 -10
- package/dist/esm/Transformers/ValueTransformer.d.ts.map +0 -1
- package/dist/esm/Transformers/ValueTransformer.js +0 -25
- package/dist/esm/Transformers/ValueTransformer.js.map +0 -1
- package/dist/esm/Transformers/index.d.ts.map +0 -1
- package/dist/esm/Transformers/index.js.map +0 -1
- package/dist/esm/const.d.ts +0 -5
- package/dist/esm/const.d.ts.map +0 -1
- package/dist/esm/const.js +0 -6
- package/dist/esm/const.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 -35
- package/dist/types/PropertyManager.d.ts.map +0 -1
- package/dist/types/Transformers/Base.d.ts.map +0 -1
- package/dist/types/Transformers/Container.d.ts +0 -10
- package/dist/types/Transformers/Container.d.ts.map +0 -1
- package/dist/types/Transformers/ValueTransformer.d.ts +0 -10
- package/dist/types/Transformers/ValueTransformer.d.ts.map +0 -1
- package/dist/types/Transformers/index.d.ts.map +0 -1
- package/dist/types/const.d.ts +0 -5
- package/dist/types/const.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
- /package/dist/cjs/{Transformers → Transformer}/index.d.ts +0 -0
- /package/dist/cjs/{Transformers → Transformer}/index.js +0 -0
- /package/dist/esm/{Transformers → Transformer}/index.d.ts +0 -0
- /package/dist/esm/{Transformers → Transformer}/index.js +0 -0
- /package/dist/types/{Transformers → Transformer}/index.d.ts +0 -0
|
@@ -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,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FnRegistry = void 0;
|
|
4
|
+
class FnRegistry {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.map = new Map();
|
|
7
|
+
}
|
|
8
|
+
set(key, fn) {
|
|
9
|
+
this.map.set(key, fn);
|
|
10
|
+
}
|
|
11
|
+
get(key) {
|
|
12
|
+
return this.map.get(key);
|
|
13
|
+
}
|
|
14
|
+
equalTo(registry) {
|
|
15
|
+
if (this.map.size !== registry.map.size)
|
|
16
|
+
return false;
|
|
17
|
+
for (const [path, fn] of this.map) {
|
|
18
|
+
if (registry.map.get(path) !== fn)
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
diff(registry) {
|
|
24
|
+
const diff = new Map();
|
|
25
|
+
for (const [path, fn] of this.map) {
|
|
26
|
+
if (registry.map.get(path) !== fn)
|
|
27
|
+
diff.set(path, fn);
|
|
28
|
+
}
|
|
29
|
+
return diff;
|
|
30
|
+
}
|
|
31
|
+
find(registry) {
|
|
32
|
+
const fnPaths = new Map();
|
|
33
|
+
const notUses = new Map();
|
|
34
|
+
let found;
|
|
35
|
+
for (const [path, fn] of this.map) {
|
|
36
|
+
found = false;
|
|
37
|
+
for (const [path2, fn2] of registry.map) {
|
|
38
|
+
if (fn === fn2) {
|
|
39
|
+
found = true;
|
|
40
|
+
if (!fnPaths.has(fn))
|
|
41
|
+
fnPaths.set(fn, new Set());
|
|
42
|
+
const paths = fnPaths.get(fn);
|
|
43
|
+
paths === null || paths === void 0 ? void 0 : paths.add([path, path2]);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (!found) {
|
|
47
|
+
notUses.set(fn, path);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
fnPaths,
|
|
52
|
+
notUses,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
compare(registry) {
|
|
56
|
+
const missing = this.find(registry);
|
|
57
|
+
const newly = registry.find(this);
|
|
58
|
+
return {
|
|
59
|
+
hasAll: missing.notUses.size === 0,
|
|
60
|
+
hasNew: newly.notUses.size > 0,
|
|
61
|
+
missing,
|
|
62
|
+
newly,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
get size() {
|
|
66
|
+
return this.map.size;
|
|
67
|
+
}
|
|
68
|
+
clear() {
|
|
69
|
+
this.map.clear();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.FnRegistry = FnRegistry;
|
|
73
|
+
//# 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,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyRegistry = void 0;
|
|
4
|
+
class KeyRegistry {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.map = new Map();
|
|
7
|
+
this.inverted = new Map();
|
|
8
|
+
this.counter = 0;
|
|
9
|
+
}
|
|
10
|
+
id(key) {
|
|
11
|
+
let id = this.map.get(key);
|
|
12
|
+
if (id === undefined) {
|
|
13
|
+
id = (this.counter++).toString(36);
|
|
14
|
+
this.map.set(key, id);
|
|
15
|
+
this.inverted.set(id, key);
|
|
16
|
+
}
|
|
17
|
+
return id;
|
|
18
|
+
}
|
|
19
|
+
get(key) {
|
|
20
|
+
return this.inverted.get(key);
|
|
21
|
+
}
|
|
22
|
+
dump() {
|
|
23
|
+
return Object.fromEntries(this.map);
|
|
24
|
+
}
|
|
25
|
+
get size() {
|
|
26
|
+
return this.map.size;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.KeyRegistry = KeyRegistry;
|
|
30
|
+
//# sourceMappingURL=KeyRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyRegistry.js","sourceRoot":"","sources":["../../../src/Cache/KeyRegistry.ts"],"names":[],"mappings":";;;AAAA,MAAa,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;AA1BD,kCA0BC"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.djb2 = djb2;
|
|
4
|
+
exports.mapper = mapper;
|
|
5
|
+
exports.mapFunctions = mapFunctions;
|
|
6
|
+
exports.getCacheKey = getCacheKey;
|
|
7
|
+
function djb2(str) {
|
|
8
|
+
let h = 5381;
|
|
9
|
+
for (let i = 0; i < str.length; i++) {
|
|
10
|
+
h = (Math.imul(h, 33) ^ str.charCodeAt(i)) | 0;
|
|
11
|
+
}
|
|
12
|
+
return (h >>> 0).toString(36);
|
|
13
|
+
}
|
|
14
|
+
function mapper(data, path, fnRegistry, keyRegistry) {
|
|
15
|
+
const type = typeof data;
|
|
16
|
+
switch (type) {
|
|
17
|
+
case 'undefined':
|
|
18
|
+
return '~u~';
|
|
19
|
+
case 'boolean':
|
|
20
|
+
return data ? '1' : '0';
|
|
21
|
+
case 'number':
|
|
22
|
+
if (isNaN(data))
|
|
23
|
+
return '~nan~';
|
|
24
|
+
return '' + data;
|
|
25
|
+
case 'bigint':
|
|
26
|
+
return '' + data;
|
|
27
|
+
case 'string':
|
|
28
|
+
return data;
|
|
29
|
+
case 'symbol': {
|
|
30
|
+
return data.toString();
|
|
31
|
+
}
|
|
32
|
+
case 'function': {
|
|
33
|
+
fnRegistry === null || fnRegistry === void 0 ? void 0 : fnRegistry.set(path, data);
|
|
34
|
+
return '~f~';
|
|
35
|
+
}
|
|
36
|
+
case 'object': {
|
|
37
|
+
if (data === null)
|
|
38
|
+
return '~n~';
|
|
39
|
+
if (Array.isArray(data)) {
|
|
40
|
+
let a = '[';
|
|
41
|
+
for (let i = 0, l = data.length; i < l; i++) {
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call((data === null || data === void 0 ? void 0 : data[i]) || {}, '$$typeof')) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const newPath = path ? path + '.' + i : i.toString();
|
|
46
|
+
a += i + ':' + mapper(data[i], newPath, fnRegistry, keyRegistry) + ',';
|
|
47
|
+
}
|
|
48
|
+
return a + ']';
|
|
49
|
+
}
|
|
50
|
+
if (data instanceof Date) {
|
|
51
|
+
return '' + data.valueOf();
|
|
52
|
+
}
|
|
53
|
+
const keys = Object.keys(data).sort();
|
|
54
|
+
let o = '{';
|
|
55
|
+
for (let i = 0, l = keys.length; i < l; i++) {
|
|
56
|
+
const key = keys[i];
|
|
57
|
+
if (key === 'children' &&
|
|
58
|
+
Object.prototype.hasOwnProperty.call((data === null || data === void 0 ? void 0 : data[key]) || {}, '$$typeof')) {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const id = keyRegistry.id(key);
|
|
62
|
+
const newPath = path ? path + '.' + id : id.toString();
|
|
63
|
+
o += id + ':' + mapper(data[key], newPath, fnRegistry, keyRegistry) + ',';
|
|
64
|
+
}
|
|
65
|
+
return o + '}';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return '~un~';
|
|
69
|
+
}
|
|
70
|
+
function mapFunctions(data, path, fnRegistry, keyRegistry) {
|
|
71
|
+
const type = typeof data;
|
|
72
|
+
switch (type) {
|
|
73
|
+
case 'function': {
|
|
74
|
+
fnRegistry === null || fnRegistry === void 0 ? void 0 : fnRegistry.set(path, data);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
case 'object': {
|
|
78
|
+
if (data === null)
|
|
79
|
+
return;
|
|
80
|
+
if (Array.isArray(data)) {
|
|
81
|
+
for (let i = 0, l = data.length; i < l; i++) {
|
|
82
|
+
if (Object.prototype.hasOwnProperty.call((data === null || data === void 0 ? void 0 : data[i]) || {}, '$$typeof')) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const newPath = path ? path + '.' + i : i.toString();
|
|
86
|
+
mapFunctions(data[i], newPath, fnRegistry, keyRegistry);
|
|
87
|
+
}
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (data instanceof Date) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const keys = Object.keys(data).sort();
|
|
94
|
+
for (let i = 0, l = keys.length; i < l; i++) {
|
|
95
|
+
const key = keys[i];
|
|
96
|
+
if (key === 'children' &&
|
|
97
|
+
Object.prototype.hasOwnProperty.call((data === null || data === void 0 ? void 0 : data[key]) || {}, '$$typeof')) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const id = keyRegistry.id(key);
|
|
101
|
+
const newPath = path ? path + '.' + id : id.toString();
|
|
102
|
+
mapFunctions(data[key], newPath, fnRegistry, keyRegistry);
|
|
103
|
+
}
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function getCacheKey(obj, fnRegistry, keyRegistry) {
|
|
109
|
+
return djb2(mapper(obj, '', fnRegistry, keyRegistry));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/Cache/utils.ts"],"names":[],"mappings":";;AAGA,oBAOC;AAED,wBAwEC;AAED,oCAgDC;AAED,kCAEC;AAvID,SAAgB,IAAI,CAAC,GAAW;IAC9B,IAAI,CAAC,GAAG,IAAI,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,MAAM,CACpB,IAAS,EACT,IAAY,EACZ,UAAsB,EACtB,WAAwB;IAExB,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC;IAEzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW;YACd,OAAO,KAAK,CAAC;QAEf,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAE1B,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,IAAI,CAAC;gBAAE,OAAO,OAAO,CAAC;YAChC,OAAO,EAAE,GAAG,IAAI,CAAC;QAEnB,KAAK,QAAQ;YACX,OAAO,EAAE,GAAG,IAAI,CAAC;QAEnB,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC;QAEd,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,GAAG,CAAC;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,KAAI,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;wBACtE,SAAS;oBACX,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrD,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC;gBACzE,CAAC;gBACD,OAAO,CAAC,GAAG,GAAG,CAAC;YACjB,CAAC;YAED,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,GAAG,CAAC;YACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IACE,GAAG,KAAK,UAAU;oBAClB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,KAAI,EAAE,EAAE,UAAU,CAAC,EACnE,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACvD,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,GAAG,GAAG,CAAC;YAC5E,CAAC;YACD,OAAO,CAAC,GAAG,GAAG,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,YAAY,CAC1B,IAAS,EACT,IAAY,EACZ,UAAsB,EACtB,WAAwB;IAExB,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC;IAEzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO;YAE1B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,CAAC,CAAC,KAAI,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;wBACtE,SAAS;oBACX,CAAC;oBACD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACrD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IACE,GAAG,KAAK,UAAU;oBAClB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,KAAI,EAAE,EAAE,UAAU,CAAC,EACnE,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACvD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,GAAW,EAAE,UAAsB,EAAE,WAAwB;IACvF,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Node } from './Node';
|
|
2
|
+
export declare class Manager {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
private nodes;
|
|
5
|
+
private defaultNode;
|
|
6
|
+
private cache;
|
|
7
|
+
private providerCacheKey;
|
|
8
|
+
private cacheKeyProviders;
|
|
9
|
+
constructor(name: string);
|
|
10
|
+
private providerListener;
|
|
11
|
+
private setProviderCacheKey;
|
|
12
|
+
node(...nodes: Node[]): this;
|
|
13
|
+
getNode(name: string): Node | undefined;
|
|
14
|
+
get(props: Record<string, any>): Record<string, any>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=Manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../../src/PropertyManager/Manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,qBAAa,OAAO;aAUU,IAAI,EAAE,MAAM;IAPxC,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,KAAK,CAA2B;IAExC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,iBAAiB,CAAkC;gBAE/B,IAAI,EAAE,MAAM;IAQxC,OAAO,CAAC,gBAAgB,CAmBtB;IAEF,OAAO,CAAC,mBAAmB;IAkB3B,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE;IAmBrB,OAAO,CAAC,IAAI,EAAE,MAAM;IASpB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA+D/B"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Manager = void 0;
|
|
4
|
+
const store_1 = require("../global/store");
|
|
5
|
+
const Container_1 = require("../Transformer/Container");
|
|
6
|
+
const CacheService_1 = require("../Cache/CacheService");
|
|
7
|
+
class Manager {
|
|
8
|
+
constructor(name) {
|
|
9
|
+
this.name = name;
|
|
10
|
+
this.nodes = new Map();
|
|
11
|
+
this.cache = new CacheService_1.CacheService();
|
|
12
|
+
this.providerCacheKey = new Map();
|
|
13
|
+
this.cacheKeyProviders = new Map();
|
|
14
|
+
this.providerListener = (providerName) => {
|
|
15
|
+
var _a;
|
|
16
|
+
const keys = this.providerCacheKey.get(providerName);
|
|
17
|
+
for (const key of keys || []) {
|
|
18
|
+
this.cache.delete(key);
|
|
19
|
+
const providersNames = this.cacheKeyProviders.get(key);
|
|
20
|
+
if (providersNames) {
|
|
21
|
+
for (const providerName of providersNames) {
|
|
22
|
+
(_a = this.providerCacheKey.get(providerName)) === null || _a === void 0 ? void 0 : _a.delete(key);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
(0, store_1.getGlobalCore)().addPropertyManager(name, this);
|
|
28
|
+
(0, store_1.getGlobalCore)().providers.addListener('*', this.providerListener);
|
|
29
|
+
}
|
|
30
|
+
setProviderCacheKey(cacheKey, providers) {
|
|
31
|
+
if (providers.size > 1) {
|
|
32
|
+
this.cacheKeyProviders.set(cacheKey, providers);
|
|
33
|
+
}
|
|
34
|
+
for (const provider of providers) {
|
|
35
|
+
const cacheKeys = this.providerCacheKey.get(provider);
|
|
36
|
+
if (!cacheKeys) {
|
|
37
|
+
this.providerCacheKey.set(provider, new Set([cacheKey]));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
cacheKeys.add(cacheKey);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
node(...nodes) {
|
|
45
|
+
for (const node of nodes) {
|
|
46
|
+
this.nodes.set(node.name, node);
|
|
47
|
+
if (node.isDefault) {
|
|
48
|
+
if (!this.defaultNode) {
|
|
49
|
+
this.defaultNode = node.name;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
throw new Error(`Default Node '${this.defaultNode}' is already exists for current Manager. Trying to set '${node.name}' as default`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (!this.defaultNode) {
|
|
57
|
+
this.defaultNode = nodes[0].name;
|
|
58
|
+
}
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
getNode(name) {
|
|
62
|
+
if (this.nodes.has(name)) {
|
|
63
|
+
return this.nodes.get(name);
|
|
64
|
+
}
|
|
65
|
+
else if (this.defaultNode) {
|
|
66
|
+
return this.nodes.get(this.defaultNode);
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
get(props) {
|
|
71
|
+
var _a;
|
|
72
|
+
const start = performance.now();
|
|
73
|
+
const keys = Object.keys(props || {});
|
|
74
|
+
const unused = new Set(keys);
|
|
75
|
+
keys.push('*');
|
|
76
|
+
const result = {};
|
|
77
|
+
const providers = new Set();
|
|
78
|
+
let unusedKeysNodeName;
|
|
79
|
+
for (const [name, node] of this.nodes) {
|
|
80
|
+
result[name] = Container_1.Transformers.apply(node.getter(props, keys, unused, providers), {
|
|
81
|
+
groups: node.getGroups(),
|
|
82
|
+
});
|
|
83
|
+
if (node.passUnusedPropsHere) {
|
|
84
|
+
unusedKeysNodeName = name;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (unused.size) {
|
|
88
|
+
if (!unusedKeysNodeName) {
|
|
89
|
+
unusedKeysNodeName = (_a = [...this.nodes.values()][0]) === null || _a === void 0 ? void 0 : _a.name;
|
|
90
|
+
}
|
|
91
|
+
for (const key of unused) {
|
|
92
|
+
if (!result[unusedKeysNodeName]) {
|
|
93
|
+
result[unusedKeysNodeName] = {};
|
|
94
|
+
}
|
|
95
|
+
result[unusedKeysNodeName][key] = props[key];
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.Manager = Manager;
|
|
102
|
+
//# sourceMappingURL=Manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../../src/PropertyManager/Manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Builder } from '../Builder/Common';
|
|
2
|
+
export declare class Node {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
private keyBuilders;
|
|
5
|
+
private extendNodes;
|
|
6
|
+
private groups;
|
|
7
|
+
private default;
|
|
8
|
+
passUnusedPropsHere: boolean;
|
|
9
|
+
private omitKeysSet;
|
|
10
|
+
private pickKeysSet;
|
|
11
|
+
constructor(name: string);
|
|
12
|
+
getGroups(): Set<string>;
|
|
13
|
+
asDefault(): this;
|
|
14
|
+
get isDefault(): boolean;
|
|
15
|
+
extends(...nodes: string[]): this;
|
|
16
|
+
unusedPropsPassHere(): this;
|
|
17
|
+
omitKeys(...keys: string[]): this;
|
|
18
|
+
pickKeys(...keys: string[]): this;
|
|
19
|
+
keys(group: string, ...builders: Builder[]): Node;
|
|
20
|
+
keys(...builders: Builder[]): Node;
|
|
21
|
+
getter(props: Record<string, any>, keys: string[], unused: Set<string>, providers: Set<string>): any;
|
|
22
|
+
getExtendNode(name: string): Node | undefined;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=Node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/PropertyManager/Node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI5C,qBAAa,IAAI;aAYa,IAAI,EAAE,MAAM;IAXxC,OAAO,CAAC,WAAW,CAAmC;IAEtD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,OAAO,CAAS;IACjB,mBAAmB,UAAS;IAEnC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAqB;gBAEZ,IAAI,EAAE,MAAM;IAExC,SAAS;IAIT,SAAS;IAKT,IAAI,SAAS,YAEZ;IAED,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE;IAO1B,mBAAmB;IAKnB,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAM1B,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAM1B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IACjD,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAuC3B,MAAM,CACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EACnB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC;IAsFxB,aAAa,CAAC,IAAI,EAAE,MAAM;CAO3B"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Node = void 0;
|
|
4
|
+
const deepMerge_1 = require("../utils/deepMerge");
|
|
5
|
+
const store_1 = require("../global/store");
|
|
6
|
+
class Node {
|
|
7
|
+
constructor(name) {
|
|
8
|
+
this.name = name;
|
|
9
|
+
this.keyBuilders = new Map();
|
|
10
|
+
this.extendNodes = new Set();
|
|
11
|
+
this.groups = new Set();
|
|
12
|
+
this.default = false;
|
|
13
|
+
this.passUnusedPropsHere = false;
|
|
14
|
+
this.omitKeysSet = new Set();
|
|
15
|
+
this.pickKeysSet = new Set();
|
|
16
|
+
}
|
|
17
|
+
getGroups() {
|
|
18
|
+
return this.groups;
|
|
19
|
+
}
|
|
20
|
+
asDefault() {
|
|
21
|
+
this.default = true;
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
get isDefault() {
|
|
25
|
+
return this.default;
|
|
26
|
+
}
|
|
27
|
+
extends(...nodes) {
|
|
28
|
+
for (const node of nodes) {
|
|
29
|
+
this.extendNodes.add(node);
|
|
30
|
+
}
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
unusedPropsPassHere() {
|
|
34
|
+
this.passUnusedPropsHere = true;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
omitKeys(...keys) {
|
|
38
|
+
this.omitKeysSet = new Set(keys);
|
|
39
|
+
this.pickKeysSet = new Set();
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
pickKeys(...keys) {
|
|
43
|
+
this.pickKeysSet = new Set(keys);
|
|
44
|
+
this.omitKeysSet = new Set();
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
keys(...args) {
|
|
48
|
+
const group = typeof args[0] === 'string' ? args[0] : '*';
|
|
49
|
+
const builders = typeof args[0] === 'string' ? args.slice(1) : args;
|
|
50
|
+
this.groups.add(group);
|
|
51
|
+
for (const builder of builders) {
|
|
52
|
+
builder.setGroup(group);
|
|
53
|
+
if (!builder.isReady) {
|
|
54
|
+
builder.onWillReady(() => {
|
|
55
|
+
const keys = builder.getKeys();
|
|
56
|
+
for (const key of keys) {
|
|
57
|
+
const keyBuilders = this.keyBuilders.get(key);
|
|
58
|
+
if (!keyBuilders) {
|
|
59
|
+
this.keyBuilders.set(key, new Set([builder]));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
keyBuilders.add(builder);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const keys = builder.getKeys();
|
|
69
|
+
for (const key of keys) {
|
|
70
|
+
const keyBuilders = this.keyBuilders.get(key);
|
|
71
|
+
if (!keyBuilders) {
|
|
72
|
+
this.keyBuilders.set(key, new Set([builder]));
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
keyBuilders.add(builder);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
getter(props, keys, unused, providers) {
|
|
82
|
+
var _a, _b;
|
|
83
|
+
const isNeedProcessKeys = this.pickKeysSet.size || this.omitKeysSet.size;
|
|
84
|
+
const _props = isNeedProcessKeys ? {} : props;
|
|
85
|
+
const _keys = isNeedProcessKeys ? [] : keys;
|
|
86
|
+
if (isNeedProcessKeys) {
|
|
87
|
+
for (const key of keys) {
|
|
88
|
+
if (this.omitKeysSet.has(key)) {
|
|
89
|
+
unused.add(key);
|
|
90
|
+
}
|
|
91
|
+
else if (this.pickKeysSet.has(key) ||
|
|
92
|
+
(!this.pickKeysSet.size && !this.omitKeysSet.has(key)) ||
|
|
93
|
+
key === '*') {
|
|
94
|
+
_keys.push(key);
|
|
95
|
+
_props[key] = props[key];
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const res = {};
|
|
100
|
+
const ids = new Set();
|
|
101
|
+
for (const key of _keys) {
|
|
102
|
+
if (this.keyBuilders.has(key)) {
|
|
103
|
+
unused.delete(key);
|
|
104
|
+
const keyBuilders = this.keyBuilders.get(key);
|
|
105
|
+
if (keyBuilders) {
|
|
106
|
+
for (const builder of keyBuilders) {
|
|
107
|
+
if (ids.has(builder.id)) {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
res[builder.id] = (_a = builder.extract(_props, _keys)) !== null && _a !== void 0 ? _a : {};
|
|
111
|
+
if (builder.group && builder.group !== '*') {
|
|
112
|
+
res[builder.id] = { [builder.group]: res[builder.id] };
|
|
113
|
+
}
|
|
114
|
+
ids.add(builder.id);
|
|
115
|
+
for (const provider of builder.getUsedProviders(_props) || []) {
|
|
116
|
+
providers.add(provider);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (ids.size === 0) {
|
|
123
|
+
return {};
|
|
124
|
+
}
|
|
125
|
+
const sortedIds = [...ids].sort((a, b) => a - b);
|
|
126
|
+
let result = sortedIds.length ? res[sortedIds[0]] : {};
|
|
127
|
+
for (let i = 1, l = sortedIds.length; i < l; i++) {
|
|
128
|
+
result = (0, deepMerge_1.deepMerge)(result, res[sortedIds[i]]);
|
|
129
|
+
}
|
|
130
|
+
let passProps = { ..._props };
|
|
131
|
+
for (const nodeName of this.extendNodes) {
|
|
132
|
+
passProps = { ...passProps, ...result };
|
|
133
|
+
const propsKeys = Object.keys(passProps);
|
|
134
|
+
const extendUnused = new Set([...unused, ...propsKeys]);
|
|
135
|
+
const data = ((_b = this.getExtendNode(nodeName)) === null || _b === void 0 ? void 0 : _b.getter(passProps, propsKeys, extendUnused, providers)) || {};
|
|
136
|
+
for (const key of propsKeys) {
|
|
137
|
+
if (!extendUnused.has(key)) {
|
|
138
|
+
delete result[key];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
for (const key of unused) {
|
|
142
|
+
if (!extendUnused.has(key)) {
|
|
143
|
+
unused.delete(key);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
result = (0, deepMerge_1.deepMerge)(data, result);
|
|
147
|
+
}
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
getExtendNode(name) {
|
|
151
|
+
const [managerName, nodeName] = name.split('.');
|
|
152
|
+
const pm = (0, store_1.getGlobalCore)().getPropertyManager(managerName);
|
|
153
|
+
if (pm) {
|
|
154
|
+
return pm.getNode(nodeName || this.name);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.Node = Node;
|
|
159
|
+
//# sourceMappingURL=Node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../../src/PropertyManager/Node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Provider } from './Provider';
|
|
2
|
+
export declare class ProviderContainer {
|
|
3
|
+
private providers;
|
|
4
|
+
private listeners;
|
|
5
|
+
addProvider(provider: Provider): void;
|
|
6
|
+
addListener(name: string, listener: Function): () => void;
|
|
7
|
+
notify(name: string): void;
|
|
8
|
+
get(name: string): Provider | undefined;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=Container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../src/Provider/Container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,SAAS,CAAoC;IAErD,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAI9B,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAmB5C,MAAM,CAAC,IAAI,EAAE,MAAM;IASnB,GAAG,CAAC,IAAI,EAAE,MAAM;CAGjB"}
|