react-hook-core 0.1.2 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/reflect.js ADDED
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function clone(obj) {
4
+ if (!obj) {
5
+ return obj;
6
+ }
7
+ if (obj instanceof Date) {
8
+ return new Date(obj.getTime());
9
+ }
10
+ if (typeof obj !== 'object') {
11
+ return obj;
12
+ }
13
+ if (Array.isArray(obj)) {
14
+ var arr = [];
15
+ for (var _i = 0, obj_1 = obj; _i < obj_1.length; _i++) {
16
+ var sub = obj_1[_i];
17
+ var c = clone(sub);
18
+ arr.push(c);
19
+ }
20
+ return arr;
21
+ }
22
+ var x = {};
23
+ var keys = Object.keys(obj);
24
+ for (var _a = 0, keys_1 = keys; _a < keys_1.length; _a++) {
25
+ var k = keys_1[_a];
26
+ var v = obj[k];
27
+ if (v instanceof Date) {
28
+ x[k] = new Date(v.getTime());
29
+ }
30
+ else {
31
+ switch (typeof v) {
32
+ case 'object':
33
+ x[k] = clone(v);
34
+ break;
35
+ default:
36
+ x[k] = v;
37
+ break;
38
+ }
39
+ }
40
+ }
41
+ return x;
42
+ }
43
+ exports.clone = clone;
44
+ function getDirectValue(obj, key) {
45
+ if (obj && obj.hasOwnProperty(key)) {
46
+ return obj[key];
47
+ }
48
+ return null;
49
+ }
50
+ exports.getDirectValue = getDirectValue;
51
+ function setValue(obj, key, value) {
52
+ var replaceKey = key.replace(/\[/g, '.[').replace(/\.\./g, '.');
53
+ if (replaceKey.indexOf('.') === 0) {
54
+ replaceKey = replaceKey.slice(1, replaceKey.length);
55
+ }
56
+ var keys = replaceKey.split('.');
57
+ var firstKey = keys.shift();
58
+ if (!firstKey) {
59
+ return;
60
+ }
61
+ var isArrayKey = /\[([0-9]+)\]/.test(firstKey);
62
+ if (keys.length > 0) {
63
+ var firstKeyValue = obj[firstKey] || {};
64
+ var returnValue = setValue(firstKeyValue, keys.join('.'), value);
65
+ return setKey(obj, isArrayKey, firstKey, returnValue);
66
+ }
67
+ return setKey(obj, isArrayKey, firstKey, value);
68
+ }
69
+ exports.setValue = setValue;
70
+ var setKey = function (_object, _isArrayKey, _key, _nextValue) {
71
+ if (_isArrayKey) {
72
+ if (_object.length > _key) {
73
+ _object[_key] = _nextValue;
74
+ }
75
+ else {
76
+ _object.push(_nextValue);
77
+ }
78
+ }
79
+ else {
80
+ _object[_key] = _nextValue;
81
+ }
82
+ return _object;
83
+ };
84
+ function diff(obj1, obj2) {
85
+ var fields = [];
86
+ var key1s = Object.keys(obj1);
87
+ for (var _i = 0, key1s_1 = key1s; _i < key1s_1.length; _i++) {
88
+ var k = key1s_1[_i];
89
+ var v1 = obj1[k];
90
+ var v2 = obj2[k];
91
+ if (v1 == null) {
92
+ if (v2 != null) {
93
+ fields.push(k);
94
+ }
95
+ }
96
+ else {
97
+ if (typeof v1 !== 'object') {
98
+ if (v1 !== v2) {
99
+ fields.push(k);
100
+ }
101
+ }
102
+ else {
103
+ var e = equal(v1, v2);
104
+ if (!e) {
105
+ fields.push(k);
106
+ }
107
+ }
108
+ }
109
+ }
110
+ var key2s = Object.keys(obj2);
111
+ var ni = notIn(key1s, key2s);
112
+ for (var _a = 0, ni_1 = ni; _a < ni_1.length; _a++) {
113
+ var n = ni_1[_a];
114
+ fields.push(n);
115
+ }
116
+ return fields;
117
+ }
118
+ exports.diff = diff;
119
+ function makeDiff(obj1, obj2, keys, version) {
120
+ var obj3 = {};
121
+ var s = diff(obj1, obj2);
122
+ if (s.length === 0) {
123
+ return obj3;
124
+ }
125
+ for (var _i = 0, s_1 = s; _i < s_1.length; _i++) {
126
+ var d = s_1[_i];
127
+ obj3[d] = obj2[d];
128
+ }
129
+ if (keys && keys.length > 0) {
130
+ for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {
131
+ var x = keys_2[_a];
132
+ if (x.length > 0) {
133
+ obj3[x] = obj1[x];
134
+ }
135
+ }
136
+ }
137
+ if (version && version.length > 0) {
138
+ obj3[version] = obj1[version];
139
+ }
140
+ return obj3;
141
+ }
142
+ exports.makeDiff = makeDiff;
143
+ function notIn(s1, s2) {
144
+ var r = [];
145
+ for (var _i = 0, s2_1 = s2; _i < s2_1.length; _i++) {
146
+ var s = s2_1[_i];
147
+ if (s1.indexOf(s) < 0) {
148
+ r.push(s);
149
+ }
150
+ }
151
+ return r;
152
+ }
153
+ exports.notIn = notIn;
154
+ function equal(obj1, obj2) {
155
+ if (obj1 == null && obj2 == null) {
156
+ return true;
157
+ }
158
+ if (obj1 == null || obj2 == null) {
159
+ return false;
160
+ }
161
+ if ((typeof obj1) !== (typeof obj2)) {
162
+ return false;
163
+ }
164
+ if (typeof obj1 !== 'object') {
165
+ return obj1 === obj2;
166
+ }
167
+ if (obj1 instanceof Date) {
168
+ if (!(obj2 instanceof Date)) {
169
+ return false;
170
+ }
171
+ return (obj1.getTime() === obj2.getTime());
172
+ }
173
+ if ((Array.isArray(obj1) && !Array.isArray(obj2))
174
+ || (!Array.isArray(obj1) && Array.isArray(obj2))) {
175
+ return false;
176
+ }
177
+ if (!Array.isArray(obj1) && !Array.isArray(obj2)) {
178
+ var key1s = Object.keys(obj1);
179
+ var key2s = Object.keys(obj2);
180
+ if (key1s.length !== key2s.length) {
181
+ return false;
182
+ }
183
+ for (var _i = 0, key1s_2 = key1s; _i < key1s_2.length; _i++) {
184
+ var k = key1s_2[_i];
185
+ var v = obj1[k];
186
+ if (typeof v !== 'object') {
187
+ if (v !== obj2[k]) {
188
+ return false;
189
+ }
190
+ }
191
+ else {
192
+ var e = equal(v, obj2[k]);
193
+ if (e === false) {
194
+ return false;
195
+ }
196
+ }
197
+ }
198
+ return true;
199
+ }
200
+ return equalArrays(obj1, obj2);
201
+ }
202
+ exports.equal = equal;
203
+ function equalArrays(ar1, ar2) {
204
+ if (ar1 == null && ar2 == null) {
205
+ return true;
206
+ }
207
+ if (ar1 == null || ar2 == null) {
208
+ return false;
209
+ }
210
+ if (ar1.length !== ar2.length) {
211
+ return false;
212
+ }
213
+ for (var i = 0; i < ar1.length; i++) {
214
+ var e = equal(ar1[i], ar2[i]);
215
+ if (e === false) {
216
+ return false;
217
+ }
218
+ }
219
+ return true;
220
+ }
221
+ exports.equalArrays = equalArrays;
222
+ function getArray(list, name, v) {
223
+ var arrs = [];
224
+ if (list) {
225
+ for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
226
+ var obj = list_1[_i];
227
+ if (obj[name] === v) {
228
+ arrs.push(obj);
229
+ }
230
+ }
231
+ }
232
+ return arrs;
233
+ }
234
+ exports.getArray = getArray;
235
+ function getDiffArray(list, name, v) {
236
+ var arrs = [];
237
+ if (list) {
238
+ for (var _i = 0, list_2 = list; _i < list_2.length; _i++) {
239
+ var obj = list_2[_i];
240
+ if (obj[name] !== true) {
241
+ arrs.push(obj);
242
+ }
243
+ }
244
+ }
245
+ return arrs;
246
+ }
247
+ exports.getDiffArray = getDiffArray;
248
+ function setAll(list, name, v) {
249
+ if (list) {
250
+ for (var _i = 0, list_3 = list; _i < list_3.length; _i++) {
251
+ var obj = list_3[_i];
252
+ obj[name] = v;
253
+ }
254
+ }
255
+ }
256
+ exports.setAll = setAll;
257
+ function equalAll(list, name, v) {
258
+ if (list) {
259
+ for (var _i = 0, list_4 = list; _i < list_4.length; _i++) {
260
+ var obj = list_4[_i];
261
+ if (obj[name] !== v) {
262
+ return false;
263
+ }
264
+ }
265
+ }
266
+ return true;
267
+ }
268
+ exports.equalAll = equalAll;