@effijs/props-manager 2.0.12

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 (151) hide show
  1. package/dist/cjs/Builder/Common.d.ts +9 -0
  2. package/dist/cjs/Builder/Common.d.ts.map +1 -0
  3. package/dist/cjs/Builder/Common.js +17 -0
  4. package/dist/cjs/Builder/Common.js.map +1 -0
  5. package/dist/cjs/Builder/Parse.d.ts +10 -0
  6. package/dist/cjs/Builder/Parse.d.ts.map +1 -0
  7. package/dist/cjs/Builder/Parse.js +34 -0
  8. package/dist/cjs/Builder/Parse.js.map +1 -0
  9. package/dist/cjs/Builder/Pattern.d.ts +11 -0
  10. package/dist/cjs/Builder/Pattern.d.ts.map +1 -0
  11. package/dist/cjs/Builder/Pattern.js +37 -0
  12. package/dist/cjs/Builder/Pattern.js.map +1 -0
  13. package/dist/cjs/Builder/Prop.d.ts +11 -0
  14. package/dist/cjs/Builder/Prop.d.ts.map +1 -0
  15. package/dist/cjs/Builder/Prop.js +47 -0
  16. package/dist/cjs/Builder/Prop.js.map +1 -0
  17. package/dist/cjs/Builder/Provider.d.ts +13 -0
  18. package/dist/cjs/Builder/Provider.d.ts.map +1 -0
  19. package/dist/cjs/Builder/Provider.js +34 -0
  20. package/dist/cjs/Builder/Provider.js.map +1 -0
  21. package/dist/cjs/Builder/Static.d.ts +9 -0
  22. package/dist/cjs/Builder/Static.d.ts.map +1 -0
  23. package/dist/cjs/Builder/Static.js +15 -0
  24. package/dist/cjs/Builder/Static.js.map +1 -0
  25. package/dist/cjs/Builder/index.d.ts +21 -0
  26. package/dist/cjs/Builder/index.d.ts.map +1 -0
  27. package/dist/cjs/Builder/index.js +32 -0
  28. package/dist/cjs/Builder/index.js.map +1 -0
  29. package/dist/cjs/Builder/types.d.ts +1 -0
  30. package/dist/cjs/Builder/types.d.ts.map +1 -0
  31. package/dist/cjs/Builder/types.js +2 -0
  32. package/dist/cjs/Builder/types.js.map +1 -0
  33. package/dist/cjs/DataProvider.d.ts +12 -0
  34. package/dist/cjs/DataProvider.d.ts.map +1 -0
  35. package/dist/cjs/DataProvider.js +40 -0
  36. package/dist/cjs/DataProvider.js.map +1 -0
  37. package/dist/cjs/PropertyManager.d.ts +32 -0
  38. package/dist/cjs/PropertyManager.d.ts.map +1 -0
  39. package/dist/cjs/PropertyManager.js +212 -0
  40. package/dist/cjs/PropertyManager.js.map +1 -0
  41. package/dist/cjs/index.d.ts +4 -0
  42. package/dist/cjs/index.d.ts.map +1 -0
  43. package/dist/cjs/index.js +13 -0
  44. package/dist/cjs/index.js.map +1 -0
  45. package/dist/cjs/react/PMMemo.d.ts +7 -0
  46. package/dist/cjs/react/PMMemo.d.ts.map +1 -0
  47. package/dist/cjs/react/PMMemo.js +11 -0
  48. package/dist/cjs/react/PMMemo.js.map +1 -0
  49. package/dist/cjs/react/PMMemo.spec.d.ts +2 -0
  50. package/dist/cjs/react/PMMemo.spec.d.ts.map +1 -0
  51. package/dist/cjs/react/PMMemo.spec.js +35 -0
  52. package/dist/cjs/react/PMMemo.spec.js.map +1 -0
  53. package/dist/cjs/types.d.ts +27 -0
  54. package/dist/cjs/types.d.ts.map +1 -0
  55. package/dist/cjs/types.js +3 -0
  56. package/dist/cjs/types.js.map +1 -0
  57. package/dist/cjs/utils.d.ts +7 -0
  58. package/dist/cjs/utils.d.ts.map +1 -0
  59. package/dist/cjs/utils.js +71 -0
  60. package/dist/cjs/utils.js.map +1 -0
  61. package/dist/esm/Builder/Common.d.ts +9 -0
  62. package/dist/esm/Builder/Common.d.ts.map +1 -0
  63. package/dist/esm/Builder/Common.js +13 -0
  64. package/dist/esm/Builder/Common.js.map +1 -0
  65. package/dist/esm/Builder/Parse.d.ts +10 -0
  66. package/dist/esm/Builder/Parse.d.ts.map +1 -0
  67. package/dist/esm/Builder/Parse.js +30 -0
  68. package/dist/esm/Builder/Parse.js.map +1 -0
  69. package/dist/esm/Builder/Pattern.d.ts +11 -0
  70. package/dist/esm/Builder/Pattern.d.ts.map +1 -0
  71. package/dist/esm/Builder/Pattern.js +33 -0
  72. package/dist/esm/Builder/Pattern.js.map +1 -0
  73. package/dist/esm/Builder/Prop.d.ts +11 -0
  74. package/dist/esm/Builder/Prop.d.ts.map +1 -0
  75. package/dist/esm/Builder/Prop.js +43 -0
  76. package/dist/esm/Builder/Prop.js.map +1 -0
  77. package/dist/esm/Builder/Provider.d.ts +13 -0
  78. package/dist/esm/Builder/Provider.d.ts.map +1 -0
  79. package/dist/esm/Builder/Provider.js +30 -0
  80. package/dist/esm/Builder/Provider.js.map +1 -0
  81. package/dist/esm/Builder/Static.d.ts +9 -0
  82. package/dist/esm/Builder/Static.d.ts.map +1 -0
  83. package/dist/esm/Builder/Static.js +11 -0
  84. package/dist/esm/Builder/Static.js.map +1 -0
  85. package/dist/esm/Builder/index.d.ts +21 -0
  86. package/dist/esm/Builder/index.d.ts.map +1 -0
  87. package/dist/esm/Builder/index.js +29 -0
  88. package/dist/esm/Builder/index.js.map +1 -0
  89. package/dist/esm/Builder/types.d.ts +1 -0
  90. package/dist/esm/Builder/types.d.ts.map +1 -0
  91. package/dist/esm/Builder/types.js +2 -0
  92. package/dist/esm/Builder/types.js.map +1 -0
  93. package/dist/esm/DataProvider.d.ts +12 -0
  94. package/dist/esm/DataProvider.d.ts.map +1 -0
  95. package/dist/esm/DataProvider.js +36 -0
  96. package/dist/esm/DataProvider.js.map +1 -0
  97. package/dist/esm/PropertyManager.d.ts +32 -0
  98. package/dist/esm/PropertyManager.d.ts.map +1 -0
  99. package/dist/esm/PropertyManager.js +208 -0
  100. package/dist/esm/PropertyManager.js.map +1 -0
  101. package/dist/esm/index.d.ts +4 -0
  102. package/dist/esm/index.d.ts.map +1 -0
  103. package/dist/esm/index.js +3 -0
  104. package/dist/esm/index.js.map +1 -0
  105. package/dist/esm/react/PMMemo.d.ts +7 -0
  106. package/dist/esm/react/PMMemo.d.ts.map +1 -0
  107. package/dist/esm/react/PMMemo.js +9 -0
  108. package/dist/esm/react/PMMemo.js.map +1 -0
  109. package/dist/esm/react/PMMemo.spec.d.ts +2 -0
  110. package/dist/esm/react/PMMemo.spec.d.ts.map +1 -0
  111. package/dist/esm/react/PMMemo.spec.js +30 -0
  112. package/dist/esm/react/PMMemo.spec.js.map +1 -0
  113. package/dist/esm/types.d.ts +27 -0
  114. package/dist/esm/types.d.ts.map +1 -0
  115. package/dist/esm/types.js +2 -0
  116. package/dist/esm/types.js.map +1 -0
  117. package/dist/esm/utils.d.ts +7 -0
  118. package/dist/esm/utils.d.ts.map +1 -0
  119. package/dist/esm/utils.js +63 -0
  120. package/dist/esm/utils.js.map +1 -0
  121. package/dist/types/Builder/Common.d.ts +9 -0
  122. package/dist/types/Builder/Common.d.ts.map +1 -0
  123. package/dist/types/Builder/Parse.d.ts +10 -0
  124. package/dist/types/Builder/Parse.d.ts.map +1 -0
  125. package/dist/types/Builder/Pattern.d.ts +11 -0
  126. package/dist/types/Builder/Pattern.d.ts.map +1 -0
  127. package/dist/types/Builder/Prop.d.ts +11 -0
  128. package/dist/types/Builder/Prop.d.ts.map +1 -0
  129. package/dist/types/Builder/Provider.d.ts +13 -0
  130. package/dist/types/Builder/Provider.d.ts.map +1 -0
  131. package/dist/types/Builder/Static.d.ts +9 -0
  132. package/dist/types/Builder/Static.d.ts.map +1 -0
  133. package/dist/types/Builder/index.d.ts +21 -0
  134. package/dist/types/Builder/index.d.ts.map +1 -0
  135. package/dist/types/Builder/types.d.ts +1 -0
  136. package/dist/types/Builder/types.d.ts.map +1 -0
  137. package/dist/types/DataProvider.d.ts +12 -0
  138. package/dist/types/DataProvider.d.ts.map +1 -0
  139. package/dist/types/PropertyManager.d.ts +32 -0
  140. package/dist/types/PropertyManager.d.ts.map +1 -0
  141. package/dist/types/index.d.ts +4 -0
  142. package/dist/types/index.d.ts.map +1 -0
  143. package/dist/types/react/PMMemo.d.ts +7 -0
  144. package/dist/types/react/PMMemo.d.ts.map +1 -0
  145. package/dist/types/react/PMMemo.spec.d.ts +2 -0
  146. package/dist/types/react/PMMemo.spec.d.ts.map +1 -0
  147. package/dist/types/types.d.ts +27 -0
  148. package/dist/types/types.d.ts.map +1 -0
  149. package/dist/types/utils.d.ts +7 -0
  150. package/dist/types/utils.d.ts.map +1 -0
  151. package/package.json +81 -0
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertyManager = void 0;
4
+ const ramda_1 = require("ramda");
5
+ const utils_1 = require("./utils");
6
+ const DataProvider_1 = require("./DataProvider");
7
+ class PropertyManager {
8
+ static getInstance(name) {
9
+ if (name.includes('.')) {
10
+ const [mainName, childName] = name.split('.');
11
+ if (this.instances.has(mainName)) {
12
+ const instance = this.instances.get(mainName);
13
+ if (instance === null || instance === void 0 ? void 0 : instance.childNodes.has(childName)) {
14
+ return instance.childNodes.get(childName);
15
+ }
16
+ }
17
+ return;
18
+ }
19
+ return this.instances.get(name);
20
+ }
21
+ constructor(name) {
22
+ this.name = name;
23
+ this.properties = {
24
+ styles: new Map(),
25
+ props: new Map(),
26
+ keys: new Set(),
27
+ };
28
+ this.builders = [];
29
+ this.extendManagers = new Set();
30
+ this.childNodes = new Map();
31
+ this.providerDependentNames = new Set();
32
+ this.initialized = false;
33
+ this.subscriptions = new Set();
34
+ }
35
+ static create(name) {
36
+ const pm = new PropertyManager(name);
37
+ PropertyManager.instances.set(name, pm);
38
+ return pm;
39
+ }
40
+ registrar(type, builders) {
41
+ for (const builder of builders) {
42
+ const keys = builder.getKeys();
43
+ for (const key of keys) {
44
+ let list = this.properties[type].get(key);
45
+ if (!list) {
46
+ list = new Set();
47
+ this.properties[type].set(key, list);
48
+ }
49
+ list.add(builder);
50
+ this.properties.keys.add(key);
51
+ }
52
+ }
53
+ }
54
+ register(type, builders) {
55
+ for (const builder of builders) {
56
+ const name = builder.providerDependentName();
57
+ if (name) {
58
+ this.providerDependentNames.add(name);
59
+ }
60
+ }
61
+ this.builders.push([type, builders]);
62
+ }
63
+ init() {
64
+ for (const [type, builders] of this.builders) {
65
+ this.registrar(type, builders);
66
+ }
67
+ this.initialized = true;
68
+ }
69
+ extends(...managers) {
70
+ for (const manager of managers) {
71
+ this.extendManagers.add(manager);
72
+ }
73
+ return this;
74
+ }
75
+ styles(...builders) {
76
+ this.register('styles', builders);
77
+ return this;
78
+ }
79
+ props(...builders) {
80
+ this.register('props', builders);
81
+ return this;
82
+ }
83
+ child(...nodes) {
84
+ for (const pm of nodes) {
85
+ this.childNodes.set(pm.name, pm);
86
+ }
87
+ return this;
88
+ }
89
+ getForEntity(type, props) {
90
+ let res = {};
91
+ for (const [key] of props) {
92
+ const builders = this.properties[type].get(key);
93
+ if (builders) {
94
+ for (const builder of builders) {
95
+ const extracted = builder.extract(props);
96
+ res = (0, ramda_1.mergeDeepRight)(res, extracted);
97
+ }
98
+ }
99
+ }
100
+ return res;
101
+ }
102
+ get({ style: overrideStyle, ...props }, isInherited = false) {
103
+ if (!this.initialized) {
104
+ this.init();
105
+ }
106
+ const organized = (0, utils_1.organizePropsKeys)({ '*': true, ...props }, this.properties.keys);
107
+ const global = {
108
+ omittedKeys: organized.omittedKeys,
109
+ style: this.getForEntity('styles', organized.orderedProps),
110
+ prop: this.getForEntity('props', organized.orderedProps),
111
+ };
112
+ if (overrideStyle) {
113
+ global.style = (0, ramda_1.mergeDeepRight)(global.style, overrideStyle);
114
+ }
115
+ for (const managerName of this.extendManagers) {
116
+ const pm = PropertyManager.getInstance(managerName);
117
+ if (pm) {
118
+ const passProps = { ...(props || {}), ...(global.prop || {}) };
119
+ const inheritedRes = pm.get(passProps, true);
120
+ global.omittedKeys = (0, utils_1.intersectKeys)(global.omittedKeys, inheritedRes.omittedKeys);
121
+ Object.keys(global.prop).forEach((key) => {
122
+ if (!inheritedRes.omittedKeys.has(key)) {
123
+ delete global.prop[key];
124
+ }
125
+ });
126
+ global.style = (0, ramda_1.mergeDeepRight)(inheritedRes.style, global.style);
127
+ global.prop = (0, ramda_1.mergeDeepRight)(inheritedRes.prop, global.prop);
128
+ }
129
+ }
130
+ if (!isInherited && this.childNodes.size) {
131
+ global.styles = {};
132
+ global.props = {};
133
+ this.childNodes.forEach((pm, name) => {
134
+ const childRes = pm.get(props, true);
135
+ global.props[name] = (0, ramda_1.mergeDeepRight)(childRes.prop, global.props[name] || {});
136
+ global.styles[name] = (0, ramda_1.mergeDeepRight)(childRes.style, global.styles[name] || {});
137
+ global.omittedKeys = (0, utils_1.intersectKeys)(global.omittedKeys, childRes.omittedKeys);
138
+ });
139
+ }
140
+ if (!isInherited) {
141
+ if (global.omittedKeys.size) {
142
+ const prop = {};
143
+ global.omittedKeys.forEach((key) => {
144
+ prop[key] = props[key];
145
+ });
146
+ global.prop = (0, ramda_1.mergeDeepRight)(global.prop, prop);
147
+ }
148
+ const { omittedKeys, ...rest } = global;
149
+ return rest;
150
+ }
151
+ return global;
152
+ }
153
+ static registerProvider(name, getter, subscribe) {
154
+ return DataProvider_1.DataProvider.add(name, getter, subscribe === null || subscribe === void 0 ? void 0 : subscribe(() => PropertyManager.update(name)));
155
+ }
156
+ static update(providerName) {
157
+ for (const [name, pm] of PropertyManager.instances) {
158
+ if (pm.providerDependentNames.has(providerName)) {
159
+ pm.update();
160
+ }
161
+ pm.childNodes.forEach((childNode) => {
162
+ if (childNode.providerDependentNames.has(providerName)) {
163
+ childNode.update();
164
+ }
165
+ });
166
+ }
167
+ for (const [name, pm] of PropertyManager.instances) {
168
+ let isNotified = false;
169
+ if (pm.providerDependentNames.has(providerName)) {
170
+ pm.notify();
171
+ isNotified = true;
172
+ }
173
+ if (!isNotified) {
174
+ let needNotify = false;
175
+ pm.childNodes.forEach((childNode) => {
176
+ if (childNode.providerDependentNames.has(providerName)) {
177
+ needNotify = true;
178
+ }
179
+ });
180
+ if (needNotify) {
181
+ pm.notify();
182
+ }
183
+ }
184
+ }
185
+ }
186
+ update() {
187
+ this.initialized = false;
188
+ this.properties.styles.clear();
189
+ this.properties.props.clear();
190
+ this.properties.keys.clear();
191
+ for (const [type, builders] of this.builders) {
192
+ for (const builder of builders) {
193
+ builder.clean();
194
+ }
195
+ }
196
+ this.init();
197
+ }
198
+ notify() {
199
+ for (const sub of this.subscriptions) {
200
+ sub();
201
+ }
202
+ }
203
+ subscribe(onChange) {
204
+ this.subscriptions.add(onChange);
205
+ return () => {
206
+ this.subscriptions.delete(onChange);
207
+ };
208
+ }
209
+ }
210
+ exports.PropertyManager = PropertyManager;
211
+ PropertyManager.instances = new Map();
212
+ //# sourceMappingURL=PropertyManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyManager.js","sourceRoot":"","sources":["../../src/PropertyManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { PropertyManager } from './PropertyManager';
2
+ export { Prop, Child, Static, Pattern, Provider, Parse } from './Builder';
3
+ export type { TObject } from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAE1E,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Parse = exports.Provider = exports.Pattern = exports.Static = exports.Child = exports.Prop = exports.PropertyManager = void 0;
4
+ var PropertyManager_1 = require("./PropertyManager");
5
+ Object.defineProperty(exports, "PropertyManager", { enumerable: true, get: function () { return PropertyManager_1.PropertyManager; } });
6
+ var Builder_1 = require("./Builder");
7
+ Object.defineProperty(exports, "Prop", { enumerable: true, get: function () { return Builder_1.Prop; } });
8
+ Object.defineProperty(exports, "Child", { enumerable: true, get: function () { return Builder_1.Child; } });
9
+ Object.defineProperty(exports, "Static", { enumerable: true, get: function () { return Builder_1.Static; } });
10
+ Object.defineProperty(exports, "Pattern", { enumerable: true, get: function () { return Builder_1.Pattern; } });
11
+ Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return Builder_1.Provider; } });
12
+ Object.defineProperty(exports, "Parse", { enumerable: true, get: function () { return Builder_1.Parse; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,qCAA0E;AAAjE,+FAAA,IAAI,OAAA;AAAE,gGAAA,KAAK,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,mGAAA,QAAQ,OAAA;AAAE,gGAAA,KAAK,OAAA"}
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ interface Props {
3
+ [key: string]: any;
4
+ }
5
+ declare const PMMemo: <P extends Props>(Component: FC<P>) => import("react").NamedExoticComponent<P>;
6
+ export default PMMemo;
7
+ //# sourceMappingURL=PMMemo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PMMemo.d.ts","sourceRoot":"","sources":["../../../src/react/PMMemo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,EAAE,EAAE,MAAM,OAAO,CAAC;AAGjC,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,QAAA,MAAM,MAAM,GAAI,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC,CAAC,CAAC,4CAShD,CAAC;AAcF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_1 = require("react");
4
+ const ramda_1 = require("ramda");
5
+ const PMMemo = (Component) => {
6
+ return (0, react_1.memo)(Component, (prevProps, nextProps) => {
7
+ return (0, ramda_1.equals)(prevProps, nextProps);
8
+ });
9
+ };
10
+ exports.default = PMMemo;
11
+ //# sourceMappingURL=PMMemo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PMMemo.js","sourceRoot":"","sources":["../../../src/react/PMMemo.tsx"],"names":[],"mappings":";;AAAA,iCAAiC;AACjC,iCAA+B;AAM/B,MAAM,MAAM,GAAG,CAAkB,SAAgB,EAAE,EAAE;IACnD,OAAO,IAAA,YAAI,EAAC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;QAM9C,OAAO,IAAA,cAAM,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAcF,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom';
2
+ //# sourceMappingURL=PMMemo.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PMMemo.spec.d.ts","sourceRoot":"","sources":["../../../src/react/PMMemo.spec.tsx"],"names":[],"mappings":"AAGA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@testing-library/react");
8
+ const PMMemo_1 = __importDefault(require("./PMMemo"));
9
+ require("@testing-library/jest-dom");
10
+ const TestComponent = ({ name }) => react_1.default.createElement("div", null, name);
11
+ describe('PMMemo', () => {
12
+ test('should render the component with the correct hash', () => {
13
+ const MemoizedComponent = (0, PMMemo_1.default)(TestComponent);
14
+ const { getByText } = (0, react_2.render)(react_1.default.createElement(MemoizedComponent, { name: "Test" }));
15
+ console.log(getByText('Test'));
16
+ });
17
+ test('should not re-render if pm-hash is the same', () => {
18
+ const MemoizedComponent = (0, PMMemo_1.default)(TestComponent);
19
+ const { rerender, queryByText } = (0, react_2.render)(react_1.default.createElement(MemoizedComponent, { name: "Test" }));
20
+ const initialRender = queryByText('Test');
21
+ rerender(react_1.default.createElement(MemoizedComponent, { name: "Test" }));
22
+ const afterRerender = queryByText('Test');
23
+ expect(initialRender).toBe(afterRerender);
24
+ });
25
+ test('should re-render if pm-hash is different', () => {
26
+ const MemoizedComponent = (0, PMMemo_1.default)(TestComponent);
27
+ const { rerender, queryByText } = (0, react_2.render)(react_1.default.createElement(MemoizedComponent, { name: "Initial" }));
28
+ const initialRender = queryByText('Initial');
29
+ rerender(react_1.default.createElement(MemoizedComponent, { name: "Updated" }));
30
+ const afterRerender = queryByText('Updated');
31
+ console.log(initialRender, afterRerender);
32
+ expect(initialRender).not.toBe(afterRerender);
33
+ });
34
+ });
35
+ //# sourceMappingURL=PMMemo.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PMMemo.spec.js","sourceRoot":"","sources":["../../../src/react/PMMemo.spec.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kDAAgD;AAChD,sDAA8B;AAC9B,qCAAmC;AAGnC,MAAM,aAAa,GAAoB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,2CAAM,IAAI,CAAO,CAAC;AAMvE,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,MAAM,iBAAiB,GAAG,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC;QAChD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAAC,8BAAC,iBAAiB,IAAC,IAAI,EAAC,MAAM,GAAG,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,MAAM,iBAAiB,GAAG,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC;QAChD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAA,cAAM,EAAC,8BAAC,iBAAiB,IAAC,IAAI,EAAC,MAAM,GAAG,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,QAAQ,CAAC,8BAAC,iBAAiB,IAAC,IAAI,EAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1C,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,MAAM,iBAAiB,GAAG,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC;QAChD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAA,cAAM,EAAC,8BAAC,iBAAiB,IAAC,IAAI,EAAC,SAAS,GAAG,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAE7C,QAAQ,CAAC,8BAAC,iBAAiB,IAAC,IAAI,EAAC,SAAS,GAAG,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAE1C,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { Builder } from './Builder/Common';
2
+ export type TOptions = {
3
+ nullWhenFirstKeyNull?: boolean;
4
+ };
5
+ export type TObject = Record<string, any>;
6
+ export type TProps = Map<string, unknown>;
7
+ export type THandle = <T extends TObject>(props: T) => TObject;
8
+ export type TRegistrar = (key: string, builder: Builder) => void;
9
+ export type TPattern = string;
10
+ export type TPatternValue = Record<string, string | number>;
11
+ export type TPatternExtractor = string | ((...args: unknown[]) => Record<string, unknown>);
12
+ interface IHasStylesAndProps {
13
+ styles: (...builders: Builder[]) => IHasStylesAndProps;
14
+ props: (...builders: Builder[]) => IHasStylesAndProps;
15
+ name: string;
16
+ extends: (...managers: string[]) => IHasStylesAndProps;
17
+ }
18
+ export type TChild<T extends IHasStylesAndProps> = Pick<T, 'name' | 'styles' | 'props' | 'extends'>;
19
+ export type TGetResult = {
20
+ prop: Record<string, unknown>;
21
+ style: Record<string, unknown>;
22
+ props: Record<string, Record<string, unknown>>;
23
+ styles: Record<string, Record<string, unknown>>;
24
+ omittedKeys: Set<string>;
25
+ };
26
+ export {};
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE1C,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;AAE/D,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GACzB,MAAM,GAEN,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEtD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,kBAAkB,CAAC;IACvD,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,kBAAkB,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,kBAAkB,CAAC;CACxD;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,kBAAkB,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAEpG,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEhD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAE1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export declare function organizePropsKeys(props: Record<string, unknown>, keys: Set<string>): {
2
+ orderedProps: Map<string, unknown>;
3
+ omittedKeys: Set<string>;
4
+ };
5
+ export declare function intersectKeys(a: Set<string>, b: Set<string> | undefined): Set<string>;
6
+ export declare function prepareData(data: Record<string, unknown>, omit?: string[]): string;
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAChB;IACD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B,CAgCA;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAGrF;AA+BD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAiBlF"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.organizePropsKeys = organizePropsKeys;
7
+ exports.intersectKeys = intersectKeys;
8
+ exports.prepareData = prepareData;
9
+ const ramda_1 = __importDefault(require("ramda"));
10
+ function organizePropsKeys(props, keys) {
11
+ const orderedProps = new Map();
12
+ const omittedKeys = new Set(Object.keys(props));
13
+ for (const key of keys) {
14
+ if (Object.prototype.hasOwnProperty.call(props, key)) {
15
+ orderedProps.set(key, props[key]);
16
+ omittedKeys.delete(key);
17
+ }
18
+ else if (key.endsWith('-')) {
19
+ const parserKey = Object.keys(props).find((k) => k.startsWith(key));
20
+ if (parserKey) {
21
+ orderedProps.set(key, props[parserKey]);
22
+ omittedKeys.delete(key);
23
+ }
24
+ }
25
+ }
26
+ if (Object.prototype.hasOwnProperty.call(props, '*')) {
27
+ omittedKeys.delete('*');
28
+ }
29
+ return {
30
+ orderedProps,
31
+ omittedKeys,
32
+ };
33
+ }
34
+ function intersectKeys(a, b) {
35
+ if (b === undefined)
36
+ return a;
37
+ return new Set([...a].filter((x) => b.has(x)));
38
+ }
39
+ function flattenObject(obj, parentKey = '', result = {}) {
40
+ const res = result;
41
+ Object.keys(obj).forEach((key) => {
42
+ const newKey = parentKey ? `${parentKey}.${key}` : key;
43
+ if (ramda_1.default.is(Object, obj[key]) && !ramda_1.default.is(Array, obj[key])) {
44
+ flattenObject(obj[key], newKey, result);
45
+ }
46
+ else if (ramda_1.default.is(Array, obj[key])) {
47
+ obj[key].forEach((item, index) => {
48
+ const arrayKey = `${newKey}[${index}]`;
49
+ if (ramda_1.default.is(Object, item)) {
50
+ flattenObject(item, arrayKey, result);
51
+ }
52
+ else {
53
+ res[arrayKey] = item;
54
+ }
55
+ });
56
+ }
57
+ else {
58
+ res[newKey] = obj[key];
59
+ }
60
+ });
61
+ return res;
62
+ }
63
+ function prepareData(data, omit) {
64
+ const omitted = ramda_1.default.omit(omit || [], data);
65
+ const flattened = flattenObject(omitted);
66
+ const pairs = ramda_1.default.toPairs(flattened);
67
+ const sortedPairs = ramda_1.default.sortBy(ramda_1.default.prop(0), pairs);
68
+ const sortedObject = ramda_1.default.fromPairs(sortedPairs);
69
+ return JSON.stringify(sortedObject);
70
+ }
71
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare abstract class Builder {
2
+ protected readonly keys: Set<string>;
3
+ protected constructor(keys: string[]);
4
+ getKeys(): Set<string>;
5
+ providerDependentName(): string | false;
6
+ clean(): void;
7
+ abstract extract(props: Map<string, unknown>): Record<string, unknown>;
8
+ }
9
+ //# sourceMappingURL=Common.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,13 @@
1
+ export class Builder {
2
+ constructor(keys) {
3
+ this.keys = new Set(keys);
4
+ }
5
+ getKeys() {
6
+ return this.keys;
7
+ }
8
+ providerDependentName() {
9
+ return false;
10
+ }
11
+ clean() { }
12
+ }
13
+ //# sourceMappingURL=Common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/Builder/Common.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,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"}
@@ -0,0 +1,10 @@
1
+ import { Builder } from './Common';
2
+ import type { TPattern, TProps } from '../types';
3
+ export declare class Parser extends Builder {
4
+ private pattern;
5
+ private toData;
6
+ private data;
7
+ constructor(pattern: TPattern, toData: (value: string) => Record<string, any>);
8
+ extract(props: TProps): Record<string, unknown>;
9
+ }
10
+ //# sourceMappingURL=Parse.d.ts.map
@@ -0,0 +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;IAJhB,OAAO,CAAC,IAAI,CAA8C;gBAGhD,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IASxD,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAehD"}
@@ -0,0 +1,30 @@
1
+ import { mergeDeepRight } from 'ramda';
2
+ import { Builder } from './Common';
3
+ export class Parser extends Builder {
4
+ constructor(pattern, toData) {
5
+ if (!pattern.endsWith('-')) {
6
+ throw new Error('Pattern should ends with "-"');
7
+ }
8
+ super([pattern]);
9
+ this.pattern = pattern;
10
+ this.toData = toData;
11
+ this.data = new Map();
12
+ }
13
+ extract(props) {
14
+ let res = {};
15
+ for (const [key, value] of props) {
16
+ if (this.keys.has(key)) {
17
+ res = mergeDeepRight(res, this.data.get(key));
18
+ }
19
+ else if (value && key.startsWith(this.pattern)) {
20
+ const value = key.replace(this.pattern, '');
21
+ const data = this.toData(value);
22
+ this.keys.add(key);
23
+ this.data.set(key, data);
24
+ res = mergeDeepRight(res, data);
25
+ }
26
+ }
27
+ return res;
28
+ }
29
+ }
30
+ //# sourceMappingURL=Parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parse.js","sourceRoot":"","sources":["../../../src/Builder/Parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,MAAM,OAAO,MAAO,SAAQ,OAAO;IAGjC,YACU,OAAiB,EACjB,MAA8C;QAEtD,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,CAAwC;QAJhD,SAAI,GAAG,IAAI,GAAG,EAAmC,CAAC;IAW1D,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,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAA4B,CAAC,CAAC;YAC3E,CAAC;iBAAM,IAAI,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACzB,GAAG,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { Builder } from './Common';
2
+ import type { TPattern, TPatternValue, TPatternExtractor, TProps } from '../types';
3
+ export declare class Pattern extends Builder {
4
+ private pattern;
5
+ private data;
6
+ private values;
7
+ constructor(pattern: TPattern, values: TPatternValue);
8
+ key(pattern: TPattern, extractor: TPatternExtractor): this;
9
+ extract(props: TProps): Record<string, unknown>;
10
+ }
11
+ //# sourceMappingURL=Pattern.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,33 @@
1
+ import { mergeDeepRight } from 'ramda';
2
+ import { Builder } from './Common';
3
+ export class Pattern extends Builder {
4
+ constructor(pattern, values) {
5
+ super([]);
6
+ this.pattern = pattern;
7
+ this.data = new Map();
8
+ this.values = Object.entries(values);
9
+ }
10
+ key(pattern, extractor) {
11
+ this.values.forEach(([replacer, value]) => {
12
+ const key = pattern.replace(this.pattern, replacer);
13
+ this.keys.add(key);
14
+ if (typeof extractor === 'string') {
15
+ this.data.set(key, { [extractor]: value });
16
+ }
17
+ else if (typeof extractor === 'function') {
18
+ this.data.set(key, extractor(value));
19
+ }
20
+ });
21
+ return this;
22
+ }
23
+ extract(props) {
24
+ let res = {};
25
+ for (const [key, value] of props) {
26
+ if (value && this.keys.has(key)) {
27
+ res = mergeDeepRight(res, this.data.get(key));
28
+ }
29
+ }
30
+ return res;
31
+ }
32
+ }
33
+ //# sourceMappingURL=Pattern.js.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ import type { THandle, TObject, TOptions, TProps } from '../types';
2
+ import { Builder } from './Common';
3
+ export declare class Prop extends Builder {
4
+ private readonly options;
5
+ private readonly obj?;
6
+ private readonly handle?;
7
+ private readonly key?;
8
+ constructor(keys: string[], extractor?: THandle | TObject | string | undefined, options?: TOptions);
9
+ extract(props: TProps): TObject;
10
+ }
11
+ //# sourceMappingURL=Prop.d.ts.map
@@ -0,0 +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"}