@effijs/props-manager 2.0.15 → 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 (315) 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/{esm/Transformers → cjs/Transformer}/Base.d.ts +2 -2
  57. package/dist/cjs/Transformer/Base.d.ts.map +1 -0
  58. package/dist/cjs/{Transformers → Transformer}/Base.js +3 -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.map +1 -0
  65. package/dist/cjs/Transformer/index.js.map +1 -0
  66. package/dist/cjs/global/Container.d.ts +13 -0
  67. package/dist/cjs/global/Container.d.ts.map +1 -0
  68. package/dist/cjs/global/Container.js +28 -0
  69. package/dist/cjs/global/Container.js.map +1 -0
  70. package/dist/cjs/global/store.d.ts +3 -0
  71. package/dist/cjs/global/store.d.ts.map +1 -0
  72. package/dist/cjs/global/store.js +13 -0
  73. package/dist/cjs/global/store.js.map +1 -0
  74. package/dist/cjs/index.d.ts +9 -5
  75. package/dist/cjs/index.d.ts.map +1 -1
  76. package/dist/cjs/index.js +17 -9
  77. package/dist/cjs/index.js.map +1 -1
  78. package/dist/cjs/types.d.ts +7 -4
  79. package/dist/cjs/types.d.ts.map +1 -1
  80. package/dist/cjs/utils/deepMerge.d.ts +2 -0
  81. package/dist/cjs/utils/deepMerge.d.ts.map +1 -0
  82. package/dist/cjs/utils/deepMerge.js +24 -0
  83. package/dist/cjs/utils/deepMerge.js.map +1 -0
  84. package/dist/esm/Builder/Common.d.ts +15 -4
  85. package/dist/esm/Builder/Common.d.ts.map +1 -1
  86. package/dist/esm/Builder/Common.js +34 -3
  87. package/dist/esm/Builder/Common.js.map +1 -1
  88. package/dist/esm/Builder/Parse.d.ts +1 -1
  89. package/dist/esm/Builder/Parse.d.ts.map +1 -1
  90. package/dist/esm/Builder/Parse.js +9 -9
  91. package/dist/esm/Builder/Parse.js.map +1 -1
  92. package/dist/esm/Builder/Pattern.d.ts +5 -4
  93. package/dist/esm/Builder/Pattern.d.ts.map +1 -1
  94. package/dist/esm/Builder/Pattern.js +50 -10
  95. package/dist/esm/Builder/Pattern.js.map +1 -1
  96. package/dist/esm/Builder/Prop.d.ts +1 -1
  97. package/dist/esm/Builder/Prop.d.ts.map +1 -1
  98. package/dist/esm/Builder/Prop.js +18 -7
  99. package/dist/esm/Builder/Prop.js.map +1 -1
  100. package/dist/esm/Builder/Static.d.ts.map +1 -1
  101. package/dist/esm/Builder/Static.js +2 -1
  102. package/dist/esm/Builder/Static.js.map +1 -1
  103. package/dist/esm/Builder/index.d.ts +14 -11
  104. package/dist/esm/Builder/index.d.ts.map +1 -1
  105. package/dist/esm/Builder/index.js +6 -10
  106. package/dist/esm/Builder/index.js.map +1 -1
  107. package/dist/esm/Cache/CacheService.d.ts +21 -0
  108. package/dist/esm/Cache/CacheService.d.ts.map +1 -0
  109. package/dist/esm/Cache/CacheService.js +91 -0
  110. package/dist/esm/Cache/CacheService.js.map +1 -0
  111. package/dist/esm/Cache/FnRegistry.d.ts +26 -0
  112. package/dist/esm/Cache/FnRegistry.d.ts.map +1 -0
  113. package/dist/esm/Cache/FnRegistry.js +69 -0
  114. package/dist/esm/Cache/FnRegistry.js.map +1 -0
  115. package/dist/esm/Cache/KeyRegistry.d.ts +10 -0
  116. package/dist/esm/Cache/KeyRegistry.d.ts.map +1 -0
  117. package/dist/esm/Cache/KeyRegistry.js +26 -0
  118. package/dist/esm/Cache/KeyRegistry.js.map +1 -0
  119. package/dist/esm/Cache/utils.d.ts +7 -0
  120. package/dist/esm/Cache/utils.d.ts.map +1 -0
  121. package/dist/esm/Cache/utils.js +105 -0
  122. package/dist/esm/Cache/utils.js.map +1 -0
  123. package/dist/esm/PropertyManager/Manager.d.ts +16 -0
  124. package/dist/esm/PropertyManager/Manager.d.ts.map +1 -0
  125. package/dist/esm/PropertyManager/Manager.js +98 -0
  126. package/dist/esm/PropertyManager/Manager.js.map +1 -0
  127. package/dist/esm/PropertyManager/Node.d.ts +24 -0
  128. package/dist/esm/PropertyManager/Node.d.ts.map +1 -0
  129. package/dist/esm/PropertyManager/Node.js +155 -0
  130. package/dist/esm/PropertyManager/Node.js.map +1 -0
  131. package/dist/esm/Provider/Container.d.ts +10 -0
  132. package/dist/esm/Provider/Container.d.ts.map +1 -0
  133. package/dist/esm/Provider/Container.js +32 -0
  134. package/dist/esm/Provider/Container.js.map +1 -0
  135. package/dist/esm/Provider/Provider.d.ts +12 -0
  136. package/dist/esm/Provider/Provider.d.ts.map +1 -0
  137. package/dist/esm/Provider/Provider.js +26 -0
  138. package/dist/esm/Provider/Provider.js.map +1 -0
  139. package/dist/{types/Transformers → esm/Transformer}/Base.d.ts +2 -2
  140. package/dist/esm/Transformer/Base.d.ts.map +1 -0
  141. package/dist/esm/{Transformers → Transformer}/Base.js +3 -0
  142. package/dist/esm/Transformer/Base.js.map +1 -0
  143. package/dist/esm/Transformer/Container.d.ts +6 -0
  144. package/dist/esm/Transformer/Container.d.ts.map +1 -0
  145. package/dist/esm/Transformer/Container.js +37 -0
  146. package/dist/esm/Transformer/Container.js.map +1 -0
  147. package/dist/esm/Transformer/index.d.ts.map +1 -0
  148. package/dist/esm/Transformer/index.js.map +1 -0
  149. package/dist/esm/global/Container.d.ts +13 -0
  150. package/dist/esm/global/Container.d.ts.map +1 -0
  151. package/dist/esm/global/Container.js +24 -0
  152. package/dist/esm/global/Container.js.map +1 -0
  153. package/dist/esm/global/store.d.ts +3 -0
  154. package/dist/esm/global/store.d.ts.map +1 -0
  155. package/dist/esm/global/store.js +10 -0
  156. package/dist/esm/global/store.js.map +1 -0
  157. package/dist/esm/index.d.ts +9 -5
  158. package/dist/esm/index.d.ts.map +1 -1
  159. package/dist/esm/index.js +16 -4
  160. package/dist/esm/index.js.map +1 -1
  161. package/dist/esm/types.d.ts +7 -4
  162. package/dist/esm/types.d.ts.map +1 -1
  163. package/dist/esm/utils/deepMerge.d.ts +2 -0
  164. package/dist/esm/utils/deepMerge.d.ts.map +1 -0
  165. package/dist/esm/utils/deepMerge.js +21 -0
  166. package/dist/esm/utils/deepMerge.js.map +1 -0
  167. package/dist/types/Builder/Common.d.ts +15 -4
  168. package/dist/types/Builder/Common.d.ts.map +1 -1
  169. package/dist/types/Builder/Parse.d.ts +1 -1
  170. package/dist/types/Builder/Parse.d.ts.map +1 -1
  171. package/dist/types/Builder/Pattern.d.ts +5 -4
  172. package/dist/types/Builder/Pattern.d.ts.map +1 -1
  173. package/dist/types/Builder/Prop.d.ts +1 -1
  174. package/dist/types/Builder/Prop.d.ts.map +1 -1
  175. package/dist/types/Builder/Static.d.ts.map +1 -1
  176. package/dist/types/Builder/index.d.ts +14 -11
  177. package/dist/types/Builder/index.d.ts.map +1 -1
  178. package/dist/types/Cache/CacheService.d.ts +21 -0
  179. package/dist/types/Cache/CacheService.d.ts.map +1 -0
  180. package/dist/types/Cache/FnRegistry.d.ts +26 -0
  181. package/dist/types/Cache/FnRegistry.d.ts.map +1 -0
  182. package/dist/types/Cache/KeyRegistry.d.ts +10 -0
  183. package/dist/types/Cache/KeyRegistry.d.ts.map +1 -0
  184. package/dist/types/Cache/utils.d.ts +7 -0
  185. package/dist/types/Cache/utils.d.ts.map +1 -0
  186. package/dist/types/PropertyManager/Manager.d.ts +16 -0
  187. package/dist/types/PropertyManager/Manager.d.ts.map +1 -0
  188. package/dist/types/PropertyManager/Node.d.ts +24 -0
  189. package/dist/types/PropertyManager/Node.d.ts.map +1 -0
  190. package/dist/types/Provider/Container.d.ts +10 -0
  191. package/dist/types/Provider/Container.d.ts.map +1 -0
  192. package/dist/types/Provider/Provider.d.ts +12 -0
  193. package/dist/types/Provider/Provider.d.ts.map +1 -0
  194. package/dist/{cjs/Transformers → types/Transformer}/Base.d.ts +2 -2
  195. package/dist/types/Transformer/Base.d.ts.map +1 -0
  196. package/dist/types/Transformer/Container.d.ts +6 -0
  197. package/dist/types/Transformer/Container.d.ts.map +1 -0
  198. package/dist/types/Transformer/index.d.ts.map +1 -0
  199. package/dist/types/global/Container.d.ts +13 -0
  200. package/dist/types/global/Container.d.ts.map +1 -0
  201. package/dist/types/global/store.d.ts +3 -0
  202. package/dist/types/global/store.d.ts.map +1 -0
  203. package/dist/types/index.d.ts +9 -5
  204. package/dist/types/index.d.ts.map +1 -1
  205. package/dist/types/types.d.ts +7 -4
  206. package/dist/types/types.d.ts.map +1 -1
  207. package/dist/types/utils/deepMerge.d.ts +2 -0
  208. package/dist/types/utils/deepMerge.d.ts.map +1 -0
  209. package/package.json +16 -12
  210. package/README.md +0 -653
  211. package/dist/cjs/Builder/Provider.d.ts +0 -13
  212. package/dist/cjs/Builder/Provider.d.ts.map +0 -1
  213. package/dist/cjs/Builder/Provider.js +0 -34
  214. package/dist/cjs/Builder/Provider.js.map +0 -1
  215. package/dist/cjs/DataProvider.d.ts +0 -12
  216. package/dist/cjs/DataProvider.d.ts.map +0 -1
  217. package/dist/cjs/DataProvider.js +0 -40
  218. package/dist/cjs/DataProvider.js.map +0 -1
  219. package/dist/cjs/PropertyManager.d.ts +0 -35
  220. package/dist/cjs/PropertyManager.d.ts.map +0 -1
  221. package/dist/cjs/PropertyManager.js +0 -226
  222. package/dist/cjs/PropertyManager.js.map +0 -1
  223. package/dist/cjs/Transformers/Base.d.ts.map +0 -1
  224. package/dist/cjs/Transformers/Base.js.map +0 -1
  225. package/dist/cjs/Transformers/Container.d.ts +0 -10
  226. package/dist/cjs/Transformers/Container.d.ts.map +0 -1
  227. package/dist/cjs/Transformers/Container.js +0 -23
  228. package/dist/cjs/Transformers/Container.js.map +0 -1
  229. package/dist/cjs/Transformers/ValueTransformer.d.ts +0 -10
  230. package/dist/cjs/Transformers/ValueTransformer.d.ts.map +0 -1
  231. package/dist/cjs/Transformers/ValueTransformer.js +0 -29
  232. package/dist/cjs/Transformers/ValueTransformer.js.map +0 -1
  233. package/dist/cjs/Transformers/index.d.ts.map +0 -1
  234. package/dist/cjs/Transformers/index.js.map +0 -1
  235. package/dist/cjs/const.d.ts +0 -5
  236. package/dist/cjs/const.d.ts.map +0 -1
  237. package/dist/cjs/const.js +0 -9
  238. package/dist/cjs/const.js.map +0 -1
  239. package/dist/cjs/react/PMMemo.d.ts +0 -7
  240. package/dist/cjs/react/PMMemo.d.ts.map +0 -1
  241. package/dist/cjs/react/PMMemo.js +0 -11
  242. package/dist/cjs/react/PMMemo.js.map +0 -1
  243. package/dist/cjs/react/PMMemo.spec.d.ts +0 -2
  244. package/dist/cjs/react/PMMemo.spec.d.ts.map +0 -1
  245. package/dist/cjs/react/PMMemo.spec.js +0 -35
  246. package/dist/cjs/react/PMMemo.spec.js.map +0 -1
  247. package/dist/cjs/utils.d.ts +0 -8
  248. package/dist/cjs/utils.d.ts.map +0 -1
  249. package/dist/cjs/utils.js +0 -76
  250. package/dist/cjs/utils.js.map +0 -1
  251. package/dist/esm/Builder/Provider.d.ts +0 -13
  252. package/dist/esm/Builder/Provider.d.ts.map +0 -1
  253. package/dist/esm/Builder/Provider.js +0 -30
  254. package/dist/esm/Builder/Provider.js.map +0 -1
  255. package/dist/esm/DataProvider.d.ts +0 -12
  256. package/dist/esm/DataProvider.d.ts.map +0 -1
  257. package/dist/esm/DataProvider.js +0 -36
  258. package/dist/esm/DataProvider.js.map +0 -1
  259. package/dist/esm/PropertyManager.d.ts +0 -35
  260. package/dist/esm/PropertyManager.d.ts.map +0 -1
  261. package/dist/esm/PropertyManager.js +0 -222
  262. package/dist/esm/PropertyManager.js.map +0 -1
  263. package/dist/esm/Transformers/Base.d.ts.map +0 -1
  264. package/dist/esm/Transformers/Base.js.map +0 -1
  265. package/dist/esm/Transformers/Container.d.ts +0 -10
  266. package/dist/esm/Transformers/Container.d.ts.map +0 -1
  267. package/dist/esm/Transformers/Container.js +0 -19
  268. package/dist/esm/Transformers/Container.js.map +0 -1
  269. package/dist/esm/Transformers/ValueTransformer.d.ts +0 -10
  270. package/dist/esm/Transformers/ValueTransformer.d.ts.map +0 -1
  271. package/dist/esm/Transformers/ValueTransformer.js +0 -25
  272. package/dist/esm/Transformers/ValueTransformer.js.map +0 -1
  273. package/dist/esm/Transformers/index.d.ts.map +0 -1
  274. package/dist/esm/Transformers/index.js.map +0 -1
  275. package/dist/esm/const.d.ts +0 -5
  276. package/dist/esm/const.d.ts.map +0 -1
  277. package/dist/esm/const.js +0 -6
  278. package/dist/esm/const.js.map +0 -1
  279. package/dist/esm/react/PMMemo.d.ts +0 -7
  280. package/dist/esm/react/PMMemo.d.ts.map +0 -1
  281. package/dist/esm/react/PMMemo.js +0 -9
  282. package/dist/esm/react/PMMemo.js.map +0 -1
  283. package/dist/esm/react/PMMemo.spec.d.ts +0 -2
  284. package/dist/esm/react/PMMemo.spec.d.ts.map +0 -1
  285. package/dist/esm/react/PMMemo.spec.js +0 -30
  286. package/dist/esm/react/PMMemo.spec.js.map +0 -1
  287. package/dist/esm/utils.d.ts +0 -8
  288. package/dist/esm/utils.d.ts.map +0 -1
  289. package/dist/esm/utils.js +0 -68
  290. package/dist/esm/utils.js.map +0 -1
  291. package/dist/types/Builder/Provider.d.ts +0 -13
  292. package/dist/types/Builder/Provider.d.ts.map +0 -1
  293. package/dist/types/DataProvider.d.ts +0 -12
  294. package/dist/types/DataProvider.d.ts.map +0 -1
  295. package/dist/types/PropertyManager.d.ts +0 -35
  296. package/dist/types/PropertyManager.d.ts.map +0 -1
  297. package/dist/types/Transformers/Base.d.ts.map +0 -1
  298. package/dist/types/Transformers/Container.d.ts +0 -10
  299. package/dist/types/Transformers/Container.d.ts.map +0 -1
  300. package/dist/types/Transformers/ValueTransformer.d.ts +0 -10
  301. package/dist/types/Transformers/ValueTransformer.d.ts.map +0 -1
  302. package/dist/types/Transformers/index.d.ts.map +0 -1
  303. package/dist/types/const.d.ts +0 -5
  304. package/dist/types/const.d.ts.map +0 -1
  305. package/dist/types/react/PMMemo.d.ts +0 -7
  306. package/dist/types/react/PMMemo.d.ts.map +0 -1
  307. package/dist/types/react/PMMemo.spec.d.ts +0 -2
  308. package/dist/types/react/PMMemo.spec.d.ts.map +0 -1
  309. package/dist/types/utils.d.ts +0 -8
  310. package/dist/types/utils.d.ts.map +0 -1
  311. /package/dist/cjs/{Transformers → Transformer}/index.d.ts +0 -0
  312. /package/dist/cjs/{Transformers → Transformer}/index.js +0 -0
  313. /package/dist/esm/{Transformers → Transformer}/index.d.ts +0 -0
  314. /package/dist/esm/{Transformers → Transformer}/index.js +0 -0
  315. /package/dist/types/{Transformers → Transformer}/index.d.ts +0 -0
@@ -1,16 +1,56 @@
1
- import { mergeDeepRight } from 'ramda';
1
+ import { getGlobalCore } from '../global/store';
2
2
  import { Builder } from './Common';
3
+ import { deepMerge } from '../utils/deepMerge';
3
4
  export class Pattern extends Builder {
4
- constructor(pattern, values) {
5
+ constructor(pattern, values, options) {
6
+ var _a, _b, _c, _d;
5
7
  super([]);
6
8
  this.pattern = pattern;
7
9
  this.data = new Map();
8
- this.values = Object.entries(values);
10
+ this.patternExtractors = new Map();
11
+ this.options = options;
12
+ if (typeof values === 'function') {
13
+ if (!((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.length) || this.isAllProvidersAccessible()) {
14
+ this.values = Object.entries(values(this.getProvidersData() || {}) || {});
15
+ }
16
+ else {
17
+ this.isReady = false;
18
+ }
19
+ }
20
+ else {
21
+ this.values = Object.entries(values);
22
+ }
23
+ if (((_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.providers) === null || _d === void 0 ? void 0 : _d.length) && typeof values === 'function') {
24
+ const waitForAllProviders = new Set(this.options.providers);
25
+ const listener = (provider) => () => {
26
+ var _a;
27
+ waitForAllProviders.delete(provider);
28
+ if (waitForAllProviders.size) {
29
+ return;
30
+ }
31
+ this.values = Object.entries(values(this.getProvidersData() || {}));
32
+ for (const [pattern, extractor] of this.patternExtractors) {
33
+ this.key(pattern, extractor, true);
34
+ }
35
+ if (!this.isReady) {
36
+ (_a = this.onWillReadyHandler) === null || _a === void 0 ? void 0 : _a.call(this);
37
+ }
38
+ };
39
+ for (const provider of this.options.providers) {
40
+ getGlobalCore().providers.addListener(provider, listener(provider));
41
+ }
42
+ }
9
43
  }
10
- key(pattern, extractor) {
11
- this.values.forEach(([replacer, value]) => {
44
+ key(pattern, extractor, skipCache) {
45
+ var _a;
46
+ if (!skipCache) {
47
+ this.patternExtractors.set(pattern, extractor);
48
+ }
49
+ (_a = this.values) === null || _a === void 0 ? void 0 : _a.forEach(([replacer, value]) => {
12
50
  const key = pattern.replace(this.pattern, replacer);
13
- this.keys.add(key);
51
+ if (!this.keys.includes(key)) {
52
+ this.keys.push(key);
53
+ }
14
54
  if (typeof extractor === 'string') {
15
55
  this.data.set(key, { [extractor]: value });
16
56
  }
@@ -20,11 +60,11 @@ export class Pattern extends Builder {
20
60
  });
21
61
  return this;
22
62
  }
23
- extract(props) {
63
+ extract(props, keys) {
24
64
  let res = {};
25
- for (const [key, value] of props) {
26
- if (value && this.keys.has(key)) {
27
- res = mergeDeepRight(res, this.data.get(key));
65
+ for (const key of keys) {
66
+ if (props[key] && this.data.has(key)) {
67
+ res = deepMerge(res, this.data.get(key));
28
68
  }
29
69
  }
30
70
  return res;
@@ -1 +1 @@
1
- {"version":3,"file":"Pattern.js","sourceRoot":"","sources":["../../../src/Builder/Pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,MAAM,OAAO,OAAQ,SAAQ,OAAO;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,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAA4B,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
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"}
@@ -1,4 +1,5 @@
1
1
  import { Builder } from './Common';
2
+ import { deepMerge } from '../utils/deepMerge';
2
3
  const OPTIONS = {
3
4
  nullWhenFirstKeyNull: true,
4
5
  };
@@ -17,27 +18,37 @@ export class Prop extends Builder {
17
18
  }
18
19
  }
19
20
  extract(props) {
20
- if (this.options.nullWhenFirstKeyNull) {
21
- if (!props.get(this.keys.values().next().value)) {
21
+ var _a;
22
+ if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.nullWhenFirstKeyNull) {
23
+ if (!(props === null || props === void 0 ? void 0 : props[this.keys[0]])) {
22
24
  return {};
23
25
  }
24
26
  }
25
27
  if (this.handle) {
26
- return this.handle(Object.fromEntries(props));
28
+ return this.handle(props, this.getProvidersData());
27
29
  }
28
30
  else if (this.obj) {
29
- return this.obj;
31
+ return deepMerge({}, this.obj);
30
32
  }
31
33
  else if (this.key) {
32
- return Object.fromEntries([[this.key, props.get(this.keys.values().next().value)]]);
34
+ return { [this.key]: props[this.keys[0]] };
33
35
  }
34
36
  const res = {};
35
37
  for (const key of this.keys) {
36
- if (props.has(key)) {
37
- res[key] = props.get(key);
38
+ if (Object.prototype.hasOwnProperty.call(props, key)) {
39
+ res[key] = props[key];
38
40
  }
39
41
  }
40
42
  return res;
41
43
  }
44
+ getUsedProviders(props) {
45
+ var _a, _b;
46
+ return ((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.providers) === null || _b === void 0 ? void 0 : _b.length) &&
47
+ ((this.options.nullWhenFirstKeyNull && (props === null || props === void 0 ? void 0 : props[this.keys[0]])) ||
48
+ !this.options.nullWhenFirstKeyNull) &&
49
+ this.handle
50
+ ? this.options.providers
51
+ : false;
52
+ }
42
53
  }
43
54
  //# sourceMappingURL=Prop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Prop.js","sourceRoot":"","sources":["../../../src/Builder/Prop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,OAAO,GAAa;IACxB,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,MAAM,OAAO,IAAK,SAAQ,OAAO;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"}
1
+ {"version":3,"file":"Prop.js","sourceRoot":"","sources":["../../../src/Builder/Prop.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,GAAa;IACxB,oBAAoB,EAAE,IAAI;CAC3B,CAAC;AAEF,MAAM,OAAO,IAAK,SAAQ,OAAO;IAK/B,YACE,IAAc,EACd,SAAkD,EAClD,OAAkB;QAElB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,SAAoB,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC/D,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAa;;QACnB,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,oBAAoB,EAAE,CAAC;YACvC,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,EAAE,CAAC;gBAC3B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,GAAG,GAAG,EAA6B,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gBAAgB,CAAC,KAAa;;QAC5B,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,SAAS,0CAAE,MAAM;YACpC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;gBAC3D,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACrC,IAAI,CAAC,MAAM;YACX,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;YACxB,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Static.d.ts","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;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"}
@@ -1,11 +1,12 @@
1
1
  import { Builder } from './Common';
2
+ import { deepMerge } from '../utils/deepMerge';
2
3
  export class Static extends Builder {
3
4
  constructor(data) {
4
5
  super(['*']);
5
6
  this.data = data;
6
7
  }
7
8
  extract() {
8
- return this.data;
9
+ return deepMerge({}, this.data);
9
10
  }
10
11
  }
11
12
  //# sourceMappingURL=Static.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Static.js","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,OAAO,MAAO,SAAQ,OAAO;IACjC,YAAoB,IAA8B;QAChD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QADK,SAAI,GAAJ,IAAI,CAA0B;IAElD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"Static.js","sourceRoot":"","sources":["../../../src/Builder/Static.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,MAAO,SAAQ,OAAO;IACjC,YAAoB,IAA8B;QAChD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QADK,SAAI,GAAJ,IAAI,CAA0B;IAElD,CAAC;IAED,OAAO;QACL,OAAO,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF"}
@@ -1,21 +1,24 @@
1
- import { 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,29 +1,25 @@
1
+ import { Node as NodeManager } from '../PropertyManager/Node';
1
2
  import { Prop as PropBuilder } from './Prop';
2
3
  import { Pattern as PatternBuilder } from './Pattern';
3
4
  import { Static as StaticBuilder } from './Static';
4
- import { PropertyManager } from '../PropertyManager';
5
- import { Provider as ProviderBuilder } from './Provider';
6
5
  import { Parser as ParseBuilder } from './Parse';
7
6
  class Builder {
8
7
  static Prop(key, extractor, options) {
9
8
  const keys = Array.isArray(key) ? key : [key];
10
9
  return new PropBuilder(keys, extractor, options);
11
10
  }
12
- static Pattern(pattern, values) {
13
- return new PatternBuilder(pattern, values);
11
+ static Pattern(pattern, values, options) {
12
+ return new PatternBuilder(pattern, values, options);
14
13
  }
15
14
  static Static(data) {
16
15
  return new StaticBuilder(data);
17
16
  }
18
- static Child(name) {
19
- return new PropertyManager(name);
20
- }
21
- static Provider(name, handle) {
22
- return new ProviderBuilder(name, handle);
17
+ static Node(name) {
18
+ return new NodeManager(name);
23
19
  }
24
20
  static Parse(pattern, toData) {
25
21
  return new ParseBuilder(pattern, toData);
26
22
  }
27
23
  }
28
- export const { Prop, Pattern, Static, Child, Provider, Parse } = Builder;
24
+ export const { Prop, Pattern, Static, Node, Parse } = Builder;
29
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Builder/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE7C,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,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,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAa;QACzB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACvB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAoC;QAChE,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,MAA8C;QAC5E,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAajD,MAAM,OAAO;IAeX,MAAM,CAAC,IAAI,CAAC,GAAsB,EAAE,SAAe,EAAE,OAAa;QAChE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAcD,MAAM,CAAC,OAAO,CAAC,OAAe,EAAE,MAAqB,EAAE,OAAkB;QACvE,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAa;QACzB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACtB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,MAA8C;QAC5E,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { FnRegistry } from './FnRegistry';
2
+ export interface CacheResult<TResult> {
3
+ result?: TResult;
4
+ fnr: FnRegistry;
5
+ key: string;
6
+ }
7
+ export declare class CacheService<TResult> {
8
+ private readonly store;
9
+ private keyRegistry;
10
+ getCacheKey(input: Record<string, any>): {
11
+ key: string;
12
+ fnr: FnRegistry;
13
+ };
14
+ get(input: Record<string, any>): CacheResult<TResult>;
15
+ set(key: string, result: TResult, fnr: FnRegistry): void;
16
+ delete(key: string): void;
17
+ has(key: string): boolean;
18
+ get size(): number;
19
+ clear(): void;
20
+ }
21
+ //# sourceMappingURL=CacheService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheService.d.ts","sourceRoot":"","sources":["../../../src/Cache/CacheService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAoB1C,MAAM,WAAW,WAAW,CAAC,OAAO;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,qBAAa,YAAY,CAAC,OAAO;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,WAAW,CAAqB;IAExC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;IAMtC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;IA8DrD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAmBxD,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,91 @@
1
+ import { KeyRegistry } from './KeyRegistry';
2
+ import { FnRegistry } from './FnRegistry';
3
+ import { getCacheKey, mapFunctions } from './utils';
4
+ export class CacheService {
5
+ constructor() {
6
+ this.store = new Map();
7
+ this.keyRegistry = new KeyRegistry();
8
+ }
9
+ getCacheKey(input) {
10
+ const fnr = new FnRegistry();
11
+ const key = getCacheKey(input, fnr, this.keyRegistry);
12
+ return { key, fnr };
13
+ }
14
+ get(input) {
15
+ var _a;
16
+ const { key, fnr } = this.getCacheKey(input);
17
+ const entry = this.store.get(key);
18
+ if (!entry) {
19
+ return {
20
+ key,
21
+ fnr,
22
+ };
23
+ }
24
+ if (!entry.fnr.equalTo(fnr)) {
25
+ if (((_a = entry.compare) === null || _a === void 0 ? void 0 : _a.hasAll) && !entry.compare.hasNew) {
26
+ for (const [fn, paths] of entry.compare.missing.fnPaths) {
27
+ for (const [input, output] of paths) {
28
+ const newFn = fnr.get(input);
29
+ const keys = output.split('.');
30
+ const lastKey = keys.pop();
31
+ let node = entry.result;
32
+ for (let i = 0; i < keys.length; i++) {
33
+ const id = this.keyRegistry.get(keys[i]);
34
+ node = node === null || node === void 0 ? void 0 : node[id];
35
+ }
36
+ if (node && lastKey) {
37
+ const id = this.keyRegistry.get(lastKey);
38
+ node[id] = newFn;
39
+ }
40
+ }
41
+ }
42
+ entry.compare.missing.fnPaths.clear();
43
+ entry.compare.missing.notUses.clear();
44
+ entry.compare.newly.fnPaths.clear();
45
+ entry.compare.newly.notUses.clear();
46
+ this.set(key, entry.result, fnr);
47
+ return {
48
+ key,
49
+ fnr,
50
+ result: entry.result,
51
+ };
52
+ }
53
+ return {
54
+ key,
55
+ fnr,
56
+ };
57
+ }
58
+ return {
59
+ key,
60
+ fnr,
61
+ result: entry.result,
62
+ };
63
+ }
64
+ set(key, result, fnr) {
65
+ if (this.store.has(key)) {
66
+ const entry = this.store.get(key);
67
+ entry.fnr.clear();
68
+ }
69
+ const ofnr = new FnRegistry();
70
+ mapFunctions(result, '', ofnr, this.keyRegistry);
71
+ const compare = fnr.compare(ofnr);
72
+ this.store.set(key, {
73
+ result,
74
+ fnr,
75
+ compare,
76
+ });
77
+ }
78
+ delete(key) {
79
+ this.store.delete(key);
80
+ }
81
+ has(key) {
82
+ return this.store.has(key);
83
+ }
84
+ get size() {
85
+ return this.store.size;
86
+ }
87
+ clear() {
88
+ this.store.clear();
89
+ }
90
+ }
91
+ //# sourceMappingURL=CacheService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheService.js","sourceRoot":"","sources":["../../../src/Cache/CacheService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export declare class FnRegistry {
2
+ private readonly map;
3
+ set(key: string, fn: Function): void;
4
+ get(key: string): Function | undefined;
5
+ equalTo(registry: FnRegistry): boolean;
6
+ diff(registry: FnRegistry): Map<string, Function>;
7
+ find(registry: FnRegistry): {
8
+ fnPaths: Map<Function, Set<string[]>>;
9
+ notUses: Map<Function, string>;
10
+ };
11
+ compare(registry: FnRegistry): {
12
+ hasAll: boolean;
13
+ hasNew: boolean;
14
+ missing: {
15
+ fnPaths: Map<Function, Set<string[]>>;
16
+ notUses: Map<Function, string>;
17
+ };
18
+ newly: {
19
+ fnPaths: Map<Function, Set<string[]>>;
20
+ notUses: Map<Function, string>;
21
+ };
22
+ };
23
+ get size(): number;
24
+ clear(): void;
25
+ }
26
+ //# sourceMappingURL=FnRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FnRegistry.d.ts","sourceRoot":"","sources":["../../../src/Cache/FnRegistry.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA+B;IAEnD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,OAAO,CAAC,QAAQ,EAAE,UAAU;IAQ5B,IAAI,CAAC,QAAQ,EAAE,UAAU;IAQzB,IAAI,CAAC,QAAQ,EAAE,UAAU;;;;IAyBzB,OAAO,CAAC,QAAQ,EAAE,UAAU;;;;;;;;;;;;IAY5B,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK;CAGN"}
@@ -0,0 +1,69 @@
1
+ export class FnRegistry {
2
+ constructor() {
3
+ this.map = new Map();
4
+ }
5
+ set(key, fn) {
6
+ this.map.set(key, fn);
7
+ }
8
+ get(key) {
9
+ return this.map.get(key);
10
+ }
11
+ equalTo(registry) {
12
+ if (this.map.size !== registry.map.size)
13
+ return false;
14
+ for (const [path, fn] of this.map) {
15
+ if (registry.map.get(path) !== fn)
16
+ return false;
17
+ }
18
+ return true;
19
+ }
20
+ diff(registry) {
21
+ const diff = new Map();
22
+ for (const [path, fn] of this.map) {
23
+ if (registry.map.get(path) !== fn)
24
+ diff.set(path, fn);
25
+ }
26
+ return diff;
27
+ }
28
+ find(registry) {
29
+ const fnPaths = new Map();
30
+ const notUses = new Map();
31
+ let found;
32
+ for (const [path, fn] of this.map) {
33
+ found = false;
34
+ for (const [path2, fn2] of registry.map) {
35
+ if (fn === fn2) {
36
+ found = true;
37
+ if (!fnPaths.has(fn))
38
+ fnPaths.set(fn, new Set());
39
+ const paths = fnPaths.get(fn);
40
+ paths === null || paths === void 0 ? void 0 : paths.add([path, path2]);
41
+ }
42
+ }
43
+ if (!found) {
44
+ notUses.set(fn, path);
45
+ }
46
+ }
47
+ return {
48
+ fnPaths,
49
+ notUses,
50
+ };
51
+ }
52
+ compare(registry) {
53
+ const missing = this.find(registry);
54
+ const newly = registry.find(this);
55
+ return {
56
+ hasAll: missing.notUses.size === 0,
57
+ hasNew: newly.notUses.size > 0,
58
+ missing,
59
+ newly,
60
+ };
61
+ }
62
+ get size() {
63
+ return this.map.size;
64
+ }
65
+ clear() {
66
+ this.map.clear();
67
+ }
68
+ }
69
+ //# sourceMappingURL=FnRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FnRegistry.js","sourceRoot":"","sources":["../../../src/Cache/FnRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class KeyRegistry {
2
+ private readonly map;
3
+ private readonly inverted;
4
+ private counter;
5
+ id(key: string): string;
6
+ get(key: string): string;
7
+ dump(): Record<string, string>;
8
+ get size(): number;
9
+ }
10
+ //# sourceMappingURL=KeyRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyRegistry.d.ts","sourceRoot":"","sources":["../../../src/Cache/KeyRegistry.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,OAAO,CAAK;IAEpB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAUvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIxB,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9B,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,26 @@
1
+ export class KeyRegistry {
2
+ constructor() {
3
+ this.map = new Map();
4
+ this.inverted = new Map();
5
+ this.counter = 0;
6
+ }
7
+ id(key) {
8
+ let id = this.map.get(key);
9
+ if (id === undefined) {
10
+ id = (this.counter++).toString(36);
11
+ this.map.set(key, id);
12
+ this.inverted.set(id, key);
13
+ }
14
+ return id;
15
+ }
16
+ get(key) {
17
+ return this.inverted.get(key);
18
+ }
19
+ dump() {
20
+ return Object.fromEntries(this.map);
21
+ }
22
+ get size() {
23
+ return this.map.size;
24
+ }
25
+ }
26
+ //# sourceMappingURL=KeyRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyRegistry.js","sourceRoot":"","sources":["../../../src/Cache/KeyRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IAAxB;QACmB,QAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChC,aAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,YAAO,GAAG,CAAC,CAAC;IAuBtB,CAAC;IArBC,EAAE,CAAC,GAAW;QACZ,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACjC,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import { KeyRegistry } from './KeyRegistry';
2
+ import { FnRegistry } from './FnRegistry';
3
+ export declare function djb2(str: string): string;
4
+ export declare function mapper(data: any, path: string, fnRegistry: FnRegistry, keyRegistry: KeyRegistry): string;
5
+ export declare function mapFunctions(data: any, path: string, fnRegistry: FnRegistry, keyRegistry: KeyRegistry): void;
6
+ export declare function getCacheKey(obj: object, fnRegistry: FnRegistry, keyRegistry: KeyRegistry): string;
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/Cache/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOxC;AAED,wBAAgB,MAAM,CACpB,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,GACvB,MAAM,CAmER;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,GAAG,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,QA4CzB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAEjG"}