@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.
Files changed (275) hide show
  1. package/dist/cjs/Builder/Common.d.ts +15 -4
  2. package/dist/cjs/Builder/Common.d.ts.map +1 -1
  3. package/dist/cjs/Builder/Common.js +34 -3
  4. package/dist/cjs/Builder/Common.js.map +1 -1
  5. package/dist/cjs/Builder/Parse.d.ts +1 -1
  6. package/dist/cjs/Builder/Parse.d.ts.map +1 -1
  7. package/dist/cjs/Builder/Parse.js +9 -9
  8. package/dist/cjs/Builder/Parse.js.map +1 -1
  9. package/dist/cjs/Builder/Pattern.d.ts +5 -4
  10. package/dist/cjs/Builder/Pattern.d.ts.map +1 -1
  11. package/dist/cjs/Builder/Pattern.js +50 -10
  12. package/dist/cjs/Builder/Pattern.js.map +1 -1
  13. package/dist/cjs/Builder/Prop.d.ts +1 -1
  14. package/dist/cjs/Builder/Prop.d.ts.map +1 -1
  15. package/dist/cjs/Builder/Prop.js +18 -7
  16. package/dist/cjs/Builder/Prop.js.map +1 -1
  17. package/dist/cjs/Builder/Static.d.ts.map +1 -1
  18. package/dist/cjs/Builder/Static.js +2 -1
  19. package/dist/cjs/Builder/Static.js.map +1 -1
  20. package/dist/cjs/Builder/index.d.ts +14 -11
  21. package/dist/cjs/Builder/index.d.ts.map +1 -1
  22. package/dist/cjs/Builder/index.js +7 -11
  23. package/dist/cjs/Builder/index.js.map +1 -1
  24. package/dist/cjs/Cache/CacheService.d.ts +21 -0
  25. package/dist/cjs/Cache/CacheService.d.ts.map +1 -0
  26. package/dist/cjs/Cache/CacheService.js +95 -0
  27. package/dist/cjs/Cache/CacheService.js.map +1 -0
  28. package/dist/cjs/Cache/FnRegistry.d.ts +26 -0
  29. package/dist/cjs/Cache/FnRegistry.d.ts.map +1 -0
  30. package/dist/cjs/Cache/FnRegistry.js +73 -0
  31. package/dist/cjs/Cache/FnRegistry.js.map +1 -0
  32. package/dist/cjs/Cache/KeyRegistry.d.ts +10 -0
  33. package/dist/cjs/Cache/KeyRegistry.d.ts.map +1 -0
  34. package/dist/cjs/Cache/KeyRegistry.js +30 -0
  35. package/dist/cjs/Cache/KeyRegistry.js.map +1 -0
  36. package/dist/cjs/Cache/utils.d.ts +7 -0
  37. package/dist/cjs/Cache/utils.d.ts.map +1 -0
  38. package/dist/cjs/Cache/utils.js +111 -0
  39. package/dist/cjs/Cache/utils.js.map +1 -0
  40. package/dist/cjs/PropertyManager/Manager.d.ts +16 -0
  41. package/dist/cjs/PropertyManager/Manager.d.ts.map +1 -0
  42. package/dist/cjs/PropertyManager/Manager.js +102 -0
  43. package/dist/cjs/PropertyManager/Manager.js.map +1 -0
  44. package/dist/cjs/PropertyManager/Node.d.ts +24 -0
  45. package/dist/cjs/PropertyManager/Node.d.ts.map +1 -0
  46. package/dist/cjs/PropertyManager/Node.js +159 -0
  47. package/dist/cjs/PropertyManager/Node.js.map +1 -0
  48. package/dist/cjs/Provider/Container.d.ts +10 -0
  49. package/dist/cjs/Provider/Container.d.ts.map +1 -0
  50. package/dist/cjs/Provider/Container.js +36 -0
  51. package/dist/cjs/Provider/Container.js.map +1 -0
  52. package/dist/cjs/Provider/Provider.d.ts +12 -0
  53. package/dist/cjs/Provider/Provider.d.ts.map +1 -0
  54. package/dist/cjs/Provider/Provider.js +30 -0
  55. package/dist/cjs/Provider/Provider.js.map +1 -0
  56. package/dist/cjs/Transformer/Base.d.ts +8 -0
  57. package/dist/cjs/Transformer/Base.d.ts.map +1 -0
  58. package/dist/cjs/Transformer/Base.js +15 -0
  59. package/dist/cjs/Transformer/Base.js.map +1 -0
  60. package/dist/cjs/Transformer/Container.d.ts +6 -0
  61. package/dist/cjs/Transformer/Container.d.ts.map +1 -0
  62. package/dist/cjs/Transformer/Container.js +41 -0
  63. package/dist/cjs/Transformer/Container.js.map +1 -0
  64. package/dist/cjs/Transformer/index.d.ts +3 -0
  65. package/dist/cjs/Transformer/index.d.ts.map +1 -0
  66. package/dist/cjs/Transformer/index.js +8 -0
  67. package/dist/cjs/Transformer/index.js.map +1 -0
  68. package/dist/cjs/global/Container.d.ts +13 -0
  69. package/dist/cjs/global/Container.d.ts.map +1 -0
  70. package/dist/cjs/global/Container.js +28 -0
  71. package/dist/cjs/global/Container.js.map +1 -0
  72. package/dist/cjs/global/store.d.ts +3 -0
  73. package/dist/cjs/global/store.d.ts.map +1 -0
  74. package/dist/cjs/global/store.js +13 -0
  75. package/dist/cjs/global/store.js.map +1 -0
  76. package/dist/cjs/index.d.ts +9 -3
  77. package/dist/cjs/index.d.ts.map +1 -1
  78. package/dist/cjs/index.js +17 -5
  79. package/dist/cjs/index.js.map +1 -1
  80. package/dist/cjs/types.d.ts +7 -4
  81. package/dist/cjs/types.d.ts.map +1 -1
  82. package/dist/cjs/utils/deepMerge.d.ts +2 -0
  83. package/dist/cjs/utils/deepMerge.d.ts.map +1 -0
  84. package/dist/cjs/utils/deepMerge.js +24 -0
  85. package/dist/cjs/utils/deepMerge.js.map +1 -0
  86. package/dist/esm/Builder/Common.d.ts +15 -4
  87. package/dist/esm/Builder/Common.d.ts.map +1 -1
  88. package/dist/esm/Builder/Common.js +34 -3
  89. package/dist/esm/Builder/Common.js.map +1 -1
  90. package/dist/esm/Builder/Parse.d.ts +1 -1
  91. package/dist/esm/Builder/Parse.d.ts.map +1 -1
  92. package/dist/esm/Builder/Parse.js +9 -9
  93. package/dist/esm/Builder/Parse.js.map +1 -1
  94. package/dist/esm/Builder/Pattern.d.ts +5 -4
  95. package/dist/esm/Builder/Pattern.d.ts.map +1 -1
  96. package/dist/esm/Builder/Pattern.js +50 -10
  97. package/dist/esm/Builder/Pattern.js.map +1 -1
  98. package/dist/esm/Builder/Prop.d.ts +1 -1
  99. package/dist/esm/Builder/Prop.d.ts.map +1 -1
  100. package/dist/esm/Builder/Prop.js +18 -7
  101. package/dist/esm/Builder/Prop.js.map +1 -1
  102. package/dist/esm/Builder/Static.d.ts.map +1 -1
  103. package/dist/esm/Builder/Static.js +2 -1
  104. package/dist/esm/Builder/Static.js.map +1 -1
  105. package/dist/esm/Builder/index.d.ts +14 -11
  106. package/dist/esm/Builder/index.d.ts.map +1 -1
  107. package/dist/esm/Builder/index.js +6 -10
  108. package/dist/esm/Builder/index.js.map +1 -1
  109. package/dist/esm/Cache/CacheService.d.ts +21 -0
  110. package/dist/esm/Cache/CacheService.d.ts.map +1 -0
  111. package/dist/esm/Cache/CacheService.js +91 -0
  112. package/dist/esm/Cache/CacheService.js.map +1 -0
  113. package/dist/esm/Cache/FnRegistry.d.ts +26 -0
  114. package/dist/esm/Cache/FnRegistry.d.ts.map +1 -0
  115. package/dist/esm/Cache/FnRegistry.js +69 -0
  116. package/dist/esm/Cache/FnRegistry.js.map +1 -0
  117. package/dist/esm/Cache/KeyRegistry.d.ts +10 -0
  118. package/dist/esm/Cache/KeyRegistry.d.ts.map +1 -0
  119. package/dist/esm/Cache/KeyRegistry.js +26 -0
  120. package/dist/esm/Cache/KeyRegistry.js.map +1 -0
  121. package/dist/esm/Cache/utils.d.ts +7 -0
  122. package/dist/esm/Cache/utils.d.ts.map +1 -0
  123. package/dist/esm/Cache/utils.js +105 -0
  124. package/dist/esm/Cache/utils.js.map +1 -0
  125. package/dist/esm/PropertyManager/Manager.d.ts +16 -0
  126. package/dist/esm/PropertyManager/Manager.d.ts.map +1 -0
  127. package/dist/esm/PropertyManager/Manager.js +98 -0
  128. package/dist/esm/PropertyManager/Manager.js.map +1 -0
  129. package/dist/esm/PropertyManager/Node.d.ts +24 -0
  130. package/dist/esm/PropertyManager/Node.d.ts.map +1 -0
  131. package/dist/esm/PropertyManager/Node.js +155 -0
  132. package/dist/esm/PropertyManager/Node.js.map +1 -0
  133. package/dist/esm/Provider/Container.d.ts +10 -0
  134. package/dist/esm/Provider/Container.d.ts.map +1 -0
  135. package/dist/esm/Provider/Container.js +32 -0
  136. package/dist/esm/Provider/Container.js.map +1 -0
  137. package/dist/esm/Provider/Provider.d.ts +12 -0
  138. package/dist/esm/Provider/Provider.d.ts.map +1 -0
  139. package/dist/esm/Provider/Provider.js +26 -0
  140. package/dist/esm/Provider/Provider.js.map +1 -0
  141. package/dist/esm/Transformer/Base.d.ts +8 -0
  142. package/dist/esm/Transformer/Base.d.ts.map +1 -0
  143. package/dist/esm/Transformer/Base.js +11 -0
  144. package/dist/esm/Transformer/Base.js.map +1 -0
  145. package/dist/esm/Transformer/Container.d.ts +6 -0
  146. package/dist/esm/Transformer/Container.d.ts.map +1 -0
  147. package/dist/esm/Transformer/Container.js +37 -0
  148. package/dist/esm/Transformer/Container.js.map +1 -0
  149. package/dist/esm/Transformer/index.d.ts +3 -0
  150. package/dist/esm/Transformer/index.d.ts.map +1 -0
  151. package/dist/esm/Transformer/index.js +3 -0
  152. package/dist/esm/Transformer/index.js.map +1 -0
  153. package/dist/esm/global/Container.d.ts +13 -0
  154. package/dist/esm/global/Container.d.ts.map +1 -0
  155. package/dist/esm/global/Container.js +24 -0
  156. package/dist/esm/global/Container.js.map +1 -0
  157. package/dist/esm/global/store.d.ts +3 -0
  158. package/dist/esm/global/store.d.ts.map +1 -0
  159. package/dist/esm/global/store.js +10 -0
  160. package/dist/esm/global/store.js.map +1 -0
  161. package/dist/esm/index.d.ts +9 -3
  162. package/dist/esm/index.d.ts.map +1 -1
  163. package/dist/esm/index.js +16 -2
  164. package/dist/esm/index.js.map +1 -1
  165. package/dist/esm/types.d.ts +7 -4
  166. package/dist/esm/types.d.ts.map +1 -1
  167. package/dist/esm/utils/deepMerge.d.ts +2 -0
  168. package/dist/esm/utils/deepMerge.d.ts.map +1 -0
  169. package/dist/esm/utils/deepMerge.js +21 -0
  170. package/dist/esm/utils/deepMerge.js.map +1 -0
  171. package/dist/types/Builder/Common.d.ts +15 -4
  172. package/dist/types/Builder/Common.d.ts.map +1 -1
  173. package/dist/types/Builder/Parse.d.ts +1 -1
  174. package/dist/types/Builder/Parse.d.ts.map +1 -1
  175. package/dist/types/Builder/Pattern.d.ts +5 -4
  176. package/dist/types/Builder/Pattern.d.ts.map +1 -1
  177. package/dist/types/Builder/Prop.d.ts +1 -1
  178. package/dist/types/Builder/Prop.d.ts.map +1 -1
  179. package/dist/types/Builder/Static.d.ts.map +1 -1
  180. package/dist/types/Builder/index.d.ts +14 -11
  181. package/dist/types/Builder/index.d.ts.map +1 -1
  182. package/dist/types/Cache/CacheService.d.ts +21 -0
  183. package/dist/types/Cache/CacheService.d.ts.map +1 -0
  184. package/dist/types/Cache/FnRegistry.d.ts +26 -0
  185. package/dist/types/Cache/FnRegistry.d.ts.map +1 -0
  186. package/dist/types/Cache/KeyRegistry.d.ts +10 -0
  187. package/dist/types/Cache/KeyRegistry.d.ts.map +1 -0
  188. package/dist/types/Cache/utils.d.ts +7 -0
  189. package/dist/types/Cache/utils.d.ts.map +1 -0
  190. package/dist/types/PropertyManager/Manager.d.ts +16 -0
  191. package/dist/types/PropertyManager/Manager.d.ts.map +1 -0
  192. package/dist/types/PropertyManager/Node.d.ts +24 -0
  193. package/dist/types/PropertyManager/Node.d.ts.map +1 -0
  194. package/dist/types/Provider/Container.d.ts +10 -0
  195. package/dist/types/Provider/Container.d.ts.map +1 -0
  196. package/dist/types/Provider/Provider.d.ts +12 -0
  197. package/dist/types/Provider/Provider.d.ts.map +1 -0
  198. package/dist/types/Transformer/Base.d.ts +8 -0
  199. package/dist/types/Transformer/Base.d.ts.map +1 -0
  200. package/dist/types/Transformer/Container.d.ts +6 -0
  201. package/dist/types/Transformer/Container.d.ts.map +1 -0
  202. package/dist/types/Transformer/index.d.ts +3 -0
  203. package/dist/types/Transformer/index.d.ts.map +1 -0
  204. package/dist/types/global/Container.d.ts +13 -0
  205. package/dist/types/global/Container.d.ts.map +1 -0
  206. package/dist/types/global/store.d.ts +3 -0
  207. package/dist/types/global/store.d.ts.map +1 -0
  208. package/dist/types/index.d.ts +9 -3
  209. package/dist/types/index.d.ts.map +1 -1
  210. package/dist/types/types.d.ts +7 -4
  211. package/dist/types/types.d.ts.map +1 -1
  212. package/dist/types/utils/deepMerge.d.ts +2 -0
  213. package/dist/types/utils/deepMerge.d.ts.map +1 -0
  214. package/package.json +16 -12
  215. package/README.md +0 -653
  216. package/dist/cjs/Builder/Provider.d.ts +0 -13
  217. package/dist/cjs/Builder/Provider.d.ts.map +0 -1
  218. package/dist/cjs/Builder/Provider.js +0 -34
  219. package/dist/cjs/Builder/Provider.js.map +0 -1
  220. package/dist/cjs/DataProvider.d.ts +0 -12
  221. package/dist/cjs/DataProvider.d.ts.map +0 -1
  222. package/dist/cjs/DataProvider.js +0 -40
  223. package/dist/cjs/DataProvider.js.map +0 -1
  224. package/dist/cjs/PropertyManager.d.ts +0 -32
  225. package/dist/cjs/PropertyManager.d.ts.map +0 -1
  226. package/dist/cjs/PropertyManager.js +0 -217
  227. package/dist/cjs/PropertyManager.js.map +0 -1
  228. package/dist/cjs/react/PMMemo.d.ts +0 -7
  229. package/dist/cjs/react/PMMemo.d.ts.map +0 -1
  230. package/dist/cjs/react/PMMemo.js +0 -11
  231. package/dist/cjs/react/PMMemo.js.map +0 -1
  232. package/dist/cjs/react/PMMemo.spec.d.ts +0 -2
  233. package/dist/cjs/react/PMMemo.spec.d.ts.map +0 -1
  234. package/dist/cjs/react/PMMemo.spec.js +0 -35
  235. package/dist/cjs/react/PMMemo.spec.js.map +0 -1
  236. package/dist/cjs/utils.d.ts +0 -8
  237. package/dist/cjs/utils.d.ts.map +0 -1
  238. package/dist/cjs/utils.js +0 -76
  239. package/dist/cjs/utils.js.map +0 -1
  240. package/dist/esm/Builder/Provider.d.ts +0 -13
  241. package/dist/esm/Builder/Provider.d.ts.map +0 -1
  242. package/dist/esm/Builder/Provider.js +0 -30
  243. package/dist/esm/Builder/Provider.js.map +0 -1
  244. package/dist/esm/DataProvider.d.ts +0 -12
  245. package/dist/esm/DataProvider.d.ts.map +0 -1
  246. package/dist/esm/DataProvider.js +0 -36
  247. package/dist/esm/DataProvider.js.map +0 -1
  248. package/dist/esm/PropertyManager.d.ts +0 -32
  249. package/dist/esm/PropertyManager.d.ts.map +0 -1
  250. package/dist/esm/PropertyManager.js +0 -213
  251. package/dist/esm/PropertyManager.js.map +0 -1
  252. package/dist/esm/react/PMMemo.d.ts +0 -7
  253. package/dist/esm/react/PMMemo.d.ts.map +0 -1
  254. package/dist/esm/react/PMMemo.js +0 -9
  255. package/dist/esm/react/PMMemo.js.map +0 -1
  256. package/dist/esm/react/PMMemo.spec.d.ts +0 -2
  257. package/dist/esm/react/PMMemo.spec.d.ts.map +0 -1
  258. package/dist/esm/react/PMMemo.spec.js +0 -30
  259. package/dist/esm/react/PMMemo.spec.js.map +0 -1
  260. package/dist/esm/utils.d.ts +0 -8
  261. package/dist/esm/utils.d.ts.map +0 -1
  262. package/dist/esm/utils.js +0 -68
  263. package/dist/esm/utils.js.map +0 -1
  264. package/dist/types/Builder/Provider.d.ts +0 -13
  265. package/dist/types/Builder/Provider.d.ts.map +0 -1
  266. package/dist/types/DataProvider.d.ts +0 -12
  267. package/dist/types/DataProvider.d.ts.map +0 -1
  268. package/dist/types/PropertyManager.d.ts +0 -32
  269. package/dist/types/PropertyManager.d.ts.map +0 -1
  270. package/dist/types/react/PMMemo.d.ts +0 -7
  271. package/dist/types/react/PMMemo.d.ts.map +0 -1
  272. package/dist/types/react/PMMemo.spec.d.ts +0 -2
  273. package/dist/types/react/PMMemo.spec.d.ts.map +0 -1
  274. package/dist/types/utils.d.ts +0 -8
  275. package/dist/types/utils.d.ts.map +0 -1
@@ -1,9 +1,20 @@
1
+ import { TObject, TOptions, TProps } from '../types';
1
2
  export declare abstract class Builder {
2
- protected readonly keys: Set<string>;
3
+ private static id;
4
+ protected options: TOptions | undefined;
5
+ protected readonly keys: string[];
6
+ group: string;
7
+ readonly id: number;
8
+ isReady: boolean;
9
+ protected onWillReadyHandler: Function | undefined;
3
10
  protected constructor(keys: string[]);
4
- getKeys(): Set<string>;
5
- providerDependentName(): string | false;
11
+ onWillReady(handler: Function): void;
12
+ setGroup(name: string): void;
13
+ getKeys(): string[];
6
14
  clean(): void;
7
- abstract extract(props: Map<string, unknown>): Record<string, unknown>;
15
+ abstract extract(props: TProps, keys: string[]): TObject;
16
+ getUsedProviders(_props?: TProps): string[] | false;
17
+ protected isAllProvidersAccessible(): boolean | undefined;
18
+ protected getProvidersData: () => Record<string, any> | undefined;
8
19
  }
9
20
  //# sourceMappingURL=Common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../../../src/Builder/Common.ts"],"names":[],"mappings":"AAEA,8BAAsB,OAAO;IAC3B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAErC,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE;IAIpC,OAAO;IAIP,qBAAqB,IAAI,MAAM,GAAG,KAAK;IAIvC,KAAK;IAEL,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACvE"}
1
+ {"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../../../src/Builder/Common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGrD,8BAAsB,OAAO;IAC3B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAK;IAEtB,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,CAAC;IAExC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAC;IAEnD,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE;IAMpC,WAAW,CAAC,OAAO,EAAE,QAAQ;IAI7B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAIrB,OAAO;IAIP,KAAK;IAEL,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;IAExD,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,KAAK;IAInD,SAAS,CAAC,wBAAwB;IAWlC,SAAS,CAAC,gBAAgB,wCAUxB;CACH"}
@@ -1,17 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Builder = void 0;
4
+ const Provider_1 = require("../Provider/Provider");
4
5
  class Builder {
5
6
  constructor(keys) {
6
- this.keys = new Set(keys);
7
+ this.getProvidersData = () => {
8
+ var _a;
9
+ if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.providers))
10
+ return undefined;
11
+ return this.options.providers.reduce((acc, provider) => {
12
+ var _a;
13
+ acc[provider] = (_a = Provider_1.Provider.getInstance(provider)) === null || _a === void 0 ? void 0 : _a.get();
14
+ return acc;
15
+ }, {});
16
+ };
17
+ this.id = Builder.id++;
18
+ this.keys = keys;
19
+ this.isReady = true;
20
+ }
21
+ onWillReady(handler) {
22
+ this.onWillReadyHandler = handler;
23
+ }
24
+ setGroup(name) {
25
+ this.group = name;
7
26
  }
8
27
  getKeys() {
9
28
  return this.keys;
10
29
  }
11
- providerDependentName() {
30
+ clean() { }
31
+ getUsedProviders(_props) {
12
32
  return false;
13
33
  }
14
- clean() { }
34
+ isAllProvidersAccessible() {
35
+ var _a;
36
+ if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.providers))
37
+ return undefined;
38
+ for (const provider of this.options.providers) {
39
+ if (!Provider_1.Provider.getInstance(provider)) {
40
+ return false;
41
+ }
42
+ }
43
+ return true;
44
+ }
15
45
  }
16
46
  exports.Builder = Builder;
47
+ Builder.id = 1;
17
48
  //# sourceMappingURL=Common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/Builder/Common.ts"],"names":[],"mappings":";;;AAEA,MAAsB,OAAO;IAG3B,YAAsB,IAAc;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,qBAAqB;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,KAAI,CAAC;CAGX;AAlBD,0BAkBC"}
1
+ {"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/Builder/Common.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAEhD,MAAsB,OAAO;IAY3B,YAAsB,IAAc;QAqC1B,qBAAgB,GAAG,GAAG,EAAE;;YAChC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,SAAS,CAAA;gBAAE,OAAO,SAAS,CAAC;YAE/C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAClC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;;gBAChB,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAA,mBAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,0CAAE,GAAG,EAAE,CAAC;gBACtD,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAyB,CAC1B,CAAC;QACJ,CAAC,CAAC;QA9CA,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,OAAiB;QAC3B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,KAAI,CAAC;IAIV,gBAAgB,CAAC,MAAe;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAES,wBAAwB;;QAChC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,SAAS,CAAA;YAAE,OAAO,SAAS,CAAC;QAE/C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC9C,IAAI,CAAC,mBAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;AA/CH,0BA4DC;AA3DgB,UAAE,GAAG,CAAC,AAAJ,CAAK"}
@@ -5,6 +5,6 @@ export declare class Parser extends Builder {
5
5
  private toData?;
6
6
  private data;
7
7
  constructor(pattern: TPattern, toData?: ((key: string, value: any) => Record<string, any>) | undefined);
8
- extract(props: TProps): Record<string, unknown>;
8
+ extract(props: TProps, keys: string[]): Record<string, unknown>;
9
9
  }
10
10
  //# sourceMappingURL=Parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Parse.d.ts","sourceRoot":"","sources":["../../../src/Builder/Parse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,MAAO,SAAQ,OAAO;IAI/B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,IAAI,CAA8C;gBAGhD,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,GAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,aAAA;IASnE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAehD"}
1
+ {"version":3,"file":"Parse.d.ts","sourceRoot":"","sources":["../../../src/Builder/Parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEjD,qBAAa,MAAO,SAAQ,OAAO;IAI/B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM,CAAC;IAJjB,OAAO,CAAC,IAAI,CAA0C;gBAG5C,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,GAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,aAAA;IASnE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAehE"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Parser = void 0;
4
- const ramda_1 = require("ramda");
5
4
  const Common_1 = require("./Common");
5
+ const deepMerge_1 = require("../utils/deepMerge");
6
6
  class Parser extends Common_1.Builder {
7
7
  constructor(pattern, toData) {
8
8
  if (!pattern.endsWith('-')) {
@@ -13,19 +13,19 @@ class Parser extends Common_1.Builder {
13
13
  this.toData = toData;
14
14
  this.data = new Map();
15
15
  }
16
- extract(props) {
16
+ extract(props, keys) {
17
17
  var _a;
18
18
  let res = {};
19
- for (const [patternKey, value] of props) {
20
- if (this.keys.has(patternKey)) {
21
- res = (0, ramda_1.mergeDeepRight)(res, this.data.get(patternKey));
19
+ for (const patternKey of keys) {
20
+ if (this.keys.includes(patternKey)) {
21
+ res = (0, deepMerge_1.deepMerge)(res, this.data.get(patternKey));
22
22
  }
23
- else if (value && patternKey.startsWith(this.pattern)) {
23
+ else if (props[patternKey] && patternKey.startsWith(this.pattern)) {
24
24
  const key = patternKey.replace(this.pattern, '');
25
- const data = ((_a = this.toData) === null || _a === void 0 ? void 0 : _a.call(this, key, value)) || { [key]: value };
26
- this.keys.add(patternKey);
25
+ const data = ((_a = this.toData) === null || _a === void 0 ? void 0 : _a.call(this, key, props[patternKey])) || { [key]: props[patternKey] };
26
+ this.keys.push(patternKey);
27
27
  this.data.set(patternKey, data);
28
- res = (0, ramda_1.mergeDeepRight)(res, data);
28
+ res = (0, deepMerge_1.deepMerge)(res, data);
29
29
  }
30
30
  }
31
31
  return res;
@@ -1 +1 @@
1
- {"version":3,"file":"Parse.js","sourceRoot":"","sources":["../../../src/Builder/Parse.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AACvC,qCAAmC;AAGnC,MAAa,MAAO,SAAQ,gBAAO;IAGjC,YACU,OAAiB,EACjB,MAAyD;QAEjE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAPT,YAAO,GAAP,OAAO,CAAU;QACjB,WAAM,GAAN,MAAM,CAAmD;QAJ3D,SAAI,GAAG,IAAI,GAAG,EAAmC,CAAC;IAW1D,CAAC;IAED,OAAO,CAAC,KAAa;;QACnB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,GAAG,GAAG,IAAA,sBAAc,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAA4B,CAAC,CAAC;YAClF,CAAC;iBAAM,IAAI,KAAK,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACjD,MAAM,IAAI,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,qDAAG,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAA8B,CAAC;gBACxF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAChC,GAAG,GAAG,IAAA,sBAAc,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA7BD,wBA6BC"}
1
+ {"version":3,"file":"Parse.js","sourceRoot":"","sources":["../../../src/Builder/Parse.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AACnC,kDAA+C;AAG/C,MAAa,MAAO,SAAQ,gBAAO;IAGjC,YACU,OAAiB,EACjB,MAAyD;QAEjE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAPT,YAAO,GAAP,OAAO,CAAU;QACjB,WAAM,GAAN,MAAM,CAAmD;QAJ3D,SAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;IAWtD,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,IAAc;;QACnC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,UAAU,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,GAAG,GAAG,IAAA,qBAAS,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpE,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACjD,MAAM,IAAI,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,qDAAG,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,KAAI,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAChC,GAAG,GAAG,IAAA,qBAAS,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA7BD,wBA6BC"}
@@ -1,11 +1,12 @@
1
1
  import { Builder } from './Common';
2
- import type { TPattern, TPatternValue, TPatternExtractor, TProps } from '../types';
2
+ import type { TPattern, TPatternValue, TPatternExtractor, TProps, TOptions } from '../types';
3
3
  export declare class Pattern extends Builder {
4
4
  private pattern;
5
5
  private data;
6
6
  private values;
7
- constructor(pattern: TPattern, values: TPatternValue);
8
- key(pattern: TPattern, extractor: TPatternExtractor): this;
9
- extract(props: TProps): Record<string, unknown>;
7
+ private patternExtractors;
8
+ constructor(pattern: TPattern, values: TPatternValue, options?: TOptions);
9
+ key(pattern: TPattern, extractor: TPatternExtractor, skipCache?: boolean): this;
10
+ extract(props: TProps, keys: string[]): Record<string, unknown>;
10
11
  }
11
12
  //# sourceMappingURL=Pattern.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pattern.d.ts","sourceRoot":"","sources":["../../../src/Builder/Pattern.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEnF,qBAAa,OAAQ,SAAQ,OAAO;IAMhC,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,IAAI,CAA8C;IAE1D,OAAO,CAAC,MAAM,CAA8B;gBAGlC,OAAO,EAAE,QAAQ,EACzB,MAAM,EAAE,aAAa;IAMvB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB;IAcnD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAShD"}
1
+ {"version":3,"file":"Pattern.d.ts","sourceRoot":"","sources":["../../../src/Builder/Pattern.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE7F,qBAAa,OAAQ,SAAQ,OAAO;IAMhC,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,IAAI,CAA0B;IACtC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,iBAAiB,CAA0C;gBAGzD,OAAO,EAAE,QAAQ,EACzB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,QAAQ;IA+CpB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE,OAAO;IAoBxE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAShE"}
@@ -1,19 +1,59 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Pattern = void 0;
4
- const ramda_1 = require("ramda");
4
+ const store_1 = require("../global/store");
5
5
  const Common_1 = require("./Common");
6
+ const deepMerge_1 = require("../utils/deepMerge");
6
7
  class Pattern extends Common_1.Builder {
7
- constructor(pattern, values) {
8
+ constructor(pattern, values, options) {
9
+ var _a, _b, _c, _d;
8
10
  super([]);
9
11
  this.pattern = pattern;
10
12
  this.data = new Map();
11
- this.values = Object.entries(values);
13
+ this.patternExtractors = new Map();
14
+ this.options = options;
15
+ if (typeof values === 'function') {
16
+ if (!((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.length) || this.isAllProvidersAccessible()) {
17
+ this.values = Object.entries(values(this.getProvidersData() || {}) || {});
18
+ }
19
+ else {
20
+ this.isReady = false;
21
+ }
22
+ }
23
+ else {
24
+ this.values = Object.entries(values);
25
+ }
26
+ if (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.providers) === null || _d === void 0 ? void 0 : _d.length) && typeof values === 'function') {
27
+ const waitForAllProviders = new Set(this.options.providers);
28
+ const listener = (provider) => () => {
29
+ var _a;
30
+ waitForAllProviders.delete(provider);
31
+ if (waitForAllProviders.size) {
32
+ return;
33
+ }
34
+ this.values = Object.entries(values(this.getProvidersData() || {}));
35
+ for (const [pattern, extractor] of this.patternExtractors) {
36
+ this.key(pattern, extractor, true);
37
+ }
38
+ if (!this.isReady) {
39
+ (_a = this.onWillReadyHandler) === null || _a === void 0 ? void 0 : _a.call(this);
40
+ }
41
+ };
42
+ for (const provider of this.options.providers) {
43
+ (0, store_1.getGlobalCore)().providers.addListener(provider, listener(provider));
44
+ }
45
+ }
12
46
  }
13
- key(pattern, extractor) {
14
- this.values.forEach(([replacer, value]) => {
47
+ key(pattern, extractor, skipCache) {
48
+ var _a;
49
+ if (!skipCache) {
50
+ this.patternExtractors.set(pattern, extractor);
51
+ }
52
+ (_a = this.values) === null || _a === void 0 ? void 0 : _a.forEach(([replacer, value]) => {
15
53
  const key = pattern.replace(this.pattern, replacer);
16
- this.keys.add(key);
54
+ if (!this.keys.includes(key)) {
55
+ this.keys.push(key);
56
+ }
17
57
  if (typeof extractor === 'string') {
18
58
  this.data.set(key, { [extractor]: value });
19
59
  }
@@ -23,11 +63,11 @@ class Pattern extends Common_1.Builder {
23
63
  });
24
64
  return this;
25
65
  }
26
- extract(props) {
66
+ extract(props, keys) {
27
67
  let res = {};
28
- for (const [key, value] of props) {
29
- if (value && this.keys.has(key)) {
30
- res = (0, ramda_1.mergeDeepRight)(res, this.data.get(key));
68
+ for (const key of keys) {
69
+ if (props[key] && this.data.has(key)) {
70
+ res = (0, deepMerge_1.deepMerge)(res, this.data.get(key));
31
71
  }
32
72
  }
33
73
  return res;
@@ -1 +1 @@
1
- {"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../../src/Builder/Pattern.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AACvC,qCAAmC;AAGnC,MAAa,OAAQ,SAAQ,gBAAO;IAKlC,YACU,OAAiB,EACzB,MAAqB;QAErB,KAAK,CAAC,EAAE,CAAC,CAAC;QAHF,YAAO,GAAP,OAAO,CAAU;QALnB,SAAI,GAAG,IAAI,GAAG,EAAmC,CAAC;QASxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,OAAiB,EAAE,SAA4B;QACjD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;YACxC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEnB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAa;QACnB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YACjC,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,GAAG,GAAG,IAAA,sBAAc,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAA4B,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AApCD,0BAoCC"}
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;AAMnC,qBAAa,IAAK,SAAQ,OAAO;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IAEnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAU;IAE/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU;IAElC,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;CA4BtB"}
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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Prop = void 0;
4
4
  const Common_1 = require("./Common");
5
+ const deepMerge_1 = require("../utils/deepMerge");
5
6
  const OPTIONS = {
6
7
  nullWhenFirstKeyNull: true,
7
8
  };
@@ -20,28 +21,38 @@ class Prop extends Common_1.Builder {
20
21
  }
21
22
  }
22
23
  extract(props) {
23
- if (this.options.nullWhenFirstKeyNull) {
24
- if (!props.get(this.keys.values().next().value)) {
24
+ var _a;
25
+ if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.nullWhenFirstKeyNull) {
26
+ if (!(props === null || props === void 0 ? void 0 : props[this.keys[0]])) {
25
27
  return {};
26
28
  }
27
29
  }
28
30
  if (this.handle) {
29
- return this.handle(Object.fromEntries(props));
31
+ return this.handle(props, this.getProvidersData());
30
32
  }
31
33
  else if (this.obj) {
32
- return this.obj;
34
+ return (0, deepMerge_1.deepMerge)({}, this.obj);
33
35
  }
34
36
  else if (this.key) {
35
- return Object.fromEntries([[this.key, props.get(this.keys.values().next().value)]]);
37
+ return { [this.key]: props[this.keys[0]] };
36
38
  }
37
39
  const res = {};
38
40
  for (const key of this.keys) {
39
- if (props.has(key)) {
40
- res[key] = props.get(key);
41
+ if (Object.prototype.hasOwnProperty.call(props, key)) {
42
+ res[key] = props[key];
41
43
  }
42
44
  }
43
45
  return res;
44
46
  }
47
+ getUsedProviders(props) {
48
+ var _a, _b;
49
+ return ((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.length) &&
50
+ ((this.options.nullWhenFirstKeyNull && (props === null || props === void 0 ? void 0 : props[this.keys[0]])) ||
51
+ !this.options.nullWhenFirstKeyNull) &&
52
+ this.handle
53
+ ? this.options.providers
54
+ : false;
55
+ }
45
56
  }
46
57
  exports.Prop = Prop;
47
58
  //# sourceMappingURL=Prop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Prop.js","sourceRoot":"","sources":["../../../src/Builder/Prop.ts"],"names":[],"mappings":";;;AACA,qCAAmC;AAEnC,MAAM,OAAO,GAAa;IACxB,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,MAAa,IAAK,SAAQ,gBAAO;IAS/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,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC,EAAE,CAAC;gBAC1D,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAID,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,GAAG,GAAG,EAA6B,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAID,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AArDD,oBAqDC"}
1
+ {"version":3,"file":"Prop.js","sourceRoot":"","sources":["../../../src/Builder/Prop.ts"],"names":[],"mappings":";;;AACA,qCAAmC;AACnC,kDAA+C;AAE/C,MAAM,OAAO,GAAa;IACxB,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,MAAa,IAAK,SAAQ,gBAAO;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,IAAA,qBAAS,EAAC,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;AAtDD,oBAsDC"}
@@ -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;AAEnC,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
+ {"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"}
@@ -2,13 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Static = void 0;
4
4
  const Common_1 = require("./Common");
5
+ const deepMerge_1 = require("../utils/deepMerge");
5
6
  class Static extends Common_1.Builder {
6
7
  constructor(data) {
7
8
  super(['*']);
8
9
  this.data = data;
9
10
  }
10
11
  extract() {
11
- return this.data;
12
+ return (0, deepMerge_1.deepMerge)({}, this.data);
12
13
  }
13
14
  }
14
15
  exports.Static = Static;
@@ -1 +1 @@
1
- {"version":3,"file":"Static.js","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAEnC,MAAa,MAAO,SAAQ,gBAAO;IACjC,YAAoB,IAA8B;QAChD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QADK,SAAI,GAAJ,IAAI,CAA0B;IAElD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AARD,wBAQC"}
1
+ {"version":3,"file":"Static.js","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AACnC,kDAA+C;AAE/C,MAAa,MAAO,SAAQ,gBAAO;IACjC,YAAoB,IAA8B;QAChD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QADK,SAAI,GAAJ,IAAI,CAA0B;IAElD,CAAC;IAED,OAAO;QACL,OAAO,IAAA,qBAAS,EAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AARD,wBAQC"}
@@ -1,21 +1,24 @@
1
- import { Builder as CommonBuilder } from './Common';
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: string, options?: TOptions): PropBuilder;
11
- static Prop(key: string, object?: TObject, options?: TOptions): PropBuilder;
12
- static Prop(key: string | string[], handle?: THandle, options?: TOptions): PropBuilder;
13
- static Pattern(pattern: string, values: Record<string, string | number>): PatternBuilder;
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 Child(name: string): TChild<PropertyManager>;
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, Child: typeof Builder.Child, Provider: typeof Builder.Provider, Parse: typeof Builder.Parse;
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,OAAO,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjD,cAAM,OAAO;IACX,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW;IAC3E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW;IAC3E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW;IAUtF,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,cAAc;IAIxF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa;IAI3C,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;IAInD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,aAAa,GAAG,eAAe;IAIpF,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,KAAK,wBAAE,QAAQ,2BAAE,KAAK,sBAAY,CAAC"}
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,32 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Parse = exports.Provider = exports.Child = exports.Static = exports.Pattern = exports.Prop = void 0;
3
+ exports.Parse = exports.Node = exports.Static = exports.Pattern = exports.Prop = void 0;
4
+ const Node_1 = require("../PropertyManager/Node");
4
5
  const Prop_1 = require("./Prop");
5
6
  const Pattern_1 = require("./Pattern");
6
7
  const Static_1 = require("./Static");
7
- const PropertyManager_1 = require("../PropertyManager");
8
- const Provider_1 = require("./Provider");
9
8
  const Parse_1 = require("./Parse");
10
9
  class Builder {
11
10
  static Prop(key, extractor, options) {
12
11
  const keys = Array.isArray(key) ? key : [key];
13
12
  return new Prop_1.Prop(keys, extractor, options);
14
13
  }
15
- static Pattern(pattern, values) {
16
- return new Pattern_1.Pattern(pattern, values);
14
+ static Pattern(pattern, values, options) {
15
+ return new Pattern_1.Pattern(pattern, values, options);
17
16
  }
18
17
  static Static(data) {
19
18
  return new Static_1.Static(data);
20
19
  }
21
- static Child(name) {
22
- return new PropertyManager_1.PropertyManager(name);
23
- }
24
- static Provider(name, handle) {
25
- return new Provider_1.Provider(name, handle);
20
+ static Node(name) {
21
+ return new Node_1.Node(name);
26
22
  }
27
23
  static Parse(pattern, toData) {
28
24
  return new Parse_1.Parser(pattern, toData);
29
25
  }
30
26
  }
31
- exports.Prop = Builder.Prop, exports.Pattern = Builder.Pattern, exports.Static = Builder.Static, exports.Child = Builder.Child, exports.Provider = Builder.Provider, exports.Parse = Builder.Parse;
27
+ exports.Prop = Builder.Prop, exports.Pattern = Builder.Pattern, exports.Static = Builder.Static, exports.Node = Builder.Node, exports.Parse = Builder.Parse;
32
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Builder/index.ts"],"names":[],"mappings":";;;AACA,iCAA6C;AAE7C,uCAAsD;AACtD,qCAAmD;AACnD,wDAAqD;AACrD,yCAAyD;AACzD,mCAAiD;AAEjD,MAAM,OAAO;IAIX,MAAM,CAAC,IAAI,CACT,GAAsB,EACtB,SAAsC,EACtC,OAAkB;QAElB,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;IAED,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,MAAuC;QACrE,OAAO,IAAI,iBAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAa;QACzB,OAAO,IAAI,eAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACvB,OAAO,IAAI,iCAAe,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAoC;QAChE,OAAO,IAAI,mBAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,MAA8C;QAC5E,OAAO,IAAI,cAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;CACF;AAEc,YAAI,GAA8C,OAAO,OAAnD,eAAO,GAAqC,OAAO,UAA1C,cAAM,GAA6B,OAAO,SAAlC,aAAK,GAAsB,OAAO,QAA3B,gBAAQ,GAAY,OAAO,WAAjB,aAAK,GAAK,OAAO,OAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Builder/index.ts"],"names":[],"mappings":";;;AAAA,kDAA8D;AAC9D,iCAA6C;AAC7C,uCAAsD;AACtD,qCAAmD;AACnD,mCAAiD;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,iBAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAa;QACzB,OAAO,IAAI,eAAa,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,cAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;CACF;AAEc,YAAI,GAAmC,OAAO,OAAxC,eAAO,GAA0B,OAAO,UAA/B,cAAM,GAAkB,OAAO,SAAvB,YAAI,GAAY,OAAO,OAAjB,aAAK,GAAK,OAAO,OAAC"}
@@ -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,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CacheService = void 0;
4
+ const KeyRegistry_1 = require("./KeyRegistry");
5
+ const FnRegistry_1 = require("./FnRegistry");
6
+ const utils_1 = require("./utils");
7
+ class CacheService {
8
+ constructor() {
9
+ this.store = new Map();
10
+ this.keyRegistry = new KeyRegistry_1.KeyRegistry();
11
+ }
12
+ getCacheKey(input) {
13
+ const fnr = new FnRegistry_1.FnRegistry();
14
+ const key = (0, utils_1.getCacheKey)(input, fnr, this.keyRegistry);
15
+ return { key, fnr };
16
+ }
17
+ get(input) {
18
+ var _a;
19
+ const { key, fnr } = this.getCacheKey(input);
20
+ const entry = this.store.get(key);
21
+ if (!entry) {
22
+ return {
23
+ key,
24
+ fnr,
25
+ };
26
+ }
27
+ if (!entry.fnr.equalTo(fnr)) {
28
+ if (((_a = entry.compare) === null || _a === void 0 ? void 0 : _a.hasAll) && !entry.compare.hasNew) {
29
+ for (const [fn, paths] of entry.compare.missing.fnPaths) {
30
+ for (const [input, output] of paths) {
31
+ const newFn = fnr.get(input);
32
+ const keys = output.split('.');
33
+ const lastKey = keys.pop();
34
+ let node = entry.result;
35
+ for (let i = 0; i < keys.length; i++) {
36
+ const id = this.keyRegistry.get(keys[i]);
37
+ node = node === null || node === void 0 ? void 0 : node[id];
38
+ }
39
+ if (node && lastKey) {
40
+ const id = this.keyRegistry.get(lastKey);
41
+ node[id] = newFn;
42
+ }
43
+ }
44
+ }
45
+ entry.compare.missing.fnPaths.clear();
46
+ entry.compare.missing.notUses.clear();
47
+ entry.compare.newly.fnPaths.clear();
48
+ entry.compare.newly.notUses.clear();
49
+ this.set(key, entry.result, fnr);
50
+ return {
51
+ key,
52
+ fnr,
53
+ result: entry.result,
54
+ };
55
+ }
56
+ return {
57
+ key,
58
+ fnr,
59
+ };
60
+ }
61
+ return {
62
+ key,
63
+ fnr,
64
+ result: entry.result,
65
+ };
66
+ }
67
+ set(key, result, fnr) {
68
+ if (this.store.has(key)) {
69
+ const entry = this.store.get(key);
70
+ entry.fnr.clear();
71
+ }
72
+ const ofnr = new FnRegistry_1.FnRegistry();
73
+ (0, utils_1.mapFunctions)(result, '', ofnr, this.keyRegistry);
74
+ const compare = fnr.compare(ofnr);
75
+ this.store.set(key, {
76
+ result,
77
+ fnr,
78
+ compare,
79
+ });
80
+ }
81
+ delete(key) {
82
+ this.store.delete(key);
83
+ }
84
+ has(key) {
85
+ return this.store.has(key);
86
+ }
87
+ get size() {
88
+ return this.store.size;
89
+ }
90
+ clear() {
91
+ this.store.clear();
92
+ }
93
+ }
94
+ exports.CacheService = CacheService;
95
+ //# sourceMappingURL=CacheService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheService.js","sourceRoot":"","sources":["../../../src/Cache/CacheService.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,6CAA0C;AAC1C,mCAAoD;AAyBpD,MAAa,YAAY;IAAzB;QACmB,UAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;QACxD,gBAAW,GAAG,IAAI,yBAAW,EAAE,CAAC;IAwG1C,CAAC;IAtGC,WAAW,CAAC,KAA0B;QACpC,MAAM,GAAG,GAAG,IAAI,uBAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,KAA0B;;QAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YAEX,OAAO;gBACL,GAAG;gBACH,GAAG;aACJ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,MAAM,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBACxD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;wBACpC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,MAA6B,CAAC;wBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACrC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;4BACzC,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,EAAE,CAAC,CAAC;wBACpB,CAAC;wBACD,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;4BACpB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BACzC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;wBACnB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACtC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACtC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACpC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAEpC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAEjC,OAAO;oBACL,GAAG;oBACH,GAAG;oBACH,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC;YACJ,CAAC;YAID,OAAO;gBACL,GAAG;gBACH,GAAG;aACJ,CAAC;QACJ,CAAC;QAID,OAAO;YACL,GAAG;YACH,GAAG;YACH,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,MAAe,EAAE,GAAe;QAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YACnC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAEpB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,uBAAU,EAAE,CAAC;QAC9B,IAAA,oBAAY,EAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,MAAM;YACN,GAAG;YACH,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF;AA1GD,oCA0GC"}