data-structure-typed 1.15.0 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/utils/types/utils.d.ts +0 -49
- package/dist/utils/types/utils.js +14 -52
- package/dist/utils/utils.d.ts +1 -97
- package/dist/utils/utils.js +197 -546
- package/package.json +3 -2
- package/src/utils/types/utils.ts +165 -167
- package/src/utils/utils.ts +209 -480
package/dist/utils/utils.js
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
2
|
+
// import _ from 'lodash';
|
|
3
|
+
// import type {AnyFunction, CaseType, JSONObject, JSONSerializable} from './types';
|
|
13
4
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
5
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
6
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -46,17 +37,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
37
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
38
|
}
|
|
48
39
|
};
|
|
49
|
-
var __values = (this && this.__values) || function(o) {
|
|
50
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
51
|
-
if (m) return m.call(o);
|
|
52
|
-
if (o && typeof o.length === "number") return {
|
|
53
|
-
next: function () {
|
|
54
|
-
if (o && i >= o.length) o = void 0;
|
|
55
|
-
return { value: o && o[i++], done: !o };
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
59
|
-
};
|
|
60
40
|
var __read = (this && this.__read) || function (o, n) {
|
|
61
41
|
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
62
42
|
if (!m) return o;
|
|
@@ -82,22 +62,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
82
62
|
}
|
|
83
63
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
84
64
|
};
|
|
85
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
86
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
87
|
-
};
|
|
88
65
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
89
|
-
exports.trampolineAsync = exports.trampoline = exports.toThunk = exports.isThunk = exports.THUNK_SYMBOL = exports.
|
|
90
|
-
var lodash_1 = __importDefault(require("lodash"));
|
|
91
|
-
function randomText(length) {
|
|
92
|
-
var result = '';
|
|
93
|
-
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
94
|
-
var charactersLength = characters.length;
|
|
95
|
-
for (var i = 0; i < length; i++) {
|
|
96
|
-
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
97
|
-
}
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
exports.randomText = randomText;
|
|
66
|
+
exports.trampolineAsync = exports.trampoline = exports.toThunk = exports.isThunk = exports.THUNK_SYMBOL = exports.arrayRemove = exports.uuidV4 = void 0;
|
|
101
67
|
var uuidV4 = function () {
|
|
102
68
|
return 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.replace(/[x]/g, function (c) {
|
|
103
69
|
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
|
@@ -105,481 +71,201 @@ var uuidV4 = function () {
|
|
|
105
71
|
});
|
|
106
72
|
};
|
|
107
73
|
exports.uuidV4 = uuidV4;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
});
|
|
263
|
-
Object.defineProperty(WaitManager.prototype, "time4", {
|
|
264
|
-
get: function () {
|
|
265
|
-
return this._time4 / this._nXSpeed;
|
|
266
|
-
},
|
|
267
|
-
enumerable: false,
|
|
268
|
-
configurable: true
|
|
269
|
-
});
|
|
270
|
-
Object.defineProperty(WaitManager.prototype, "time10", {
|
|
271
|
-
get: function () {
|
|
272
|
-
return this._time10 / this._nXSpeed;
|
|
273
|
-
},
|
|
274
|
-
enumerable: false,
|
|
275
|
-
configurable: true
|
|
276
|
-
});
|
|
277
|
-
Object.defineProperty(WaitManager.prototype, "time20", {
|
|
278
|
-
get: function () {
|
|
279
|
-
return this._time20 / this._nXSpeed;
|
|
280
|
-
},
|
|
281
|
-
enumerable: false,
|
|
282
|
-
configurable: true
|
|
283
|
-
});
|
|
284
|
-
Object.defineProperty(WaitManager.prototype, "time50", {
|
|
285
|
-
get: function () {
|
|
286
|
-
return this._time30 / this._nXSpeed;
|
|
287
|
-
},
|
|
288
|
-
enumerable: false,
|
|
289
|
-
configurable: true
|
|
290
|
-
});
|
|
291
|
-
Object.defineProperty(WaitManager.prototype, "time60", {
|
|
292
|
-
get: function () {
|
|
293
|
-
return this._time60 / this._nXSpeed;
|
|
294
|
-
},
|
|
295
|
-
enumerable: false,
|
|
296
|
-
configurable: true
|
|
297
|
-
});
|
|
298
|
-
Object.defineProperty(WaitManager.prototype, "cusTime", {
|
|
299
|
-
get: function () {
|
|
300
|
-
return this._cusTime / this._nXSpeed;
|
|
301
|
-
},
|
|
302
|
-
set: function (v) {
|
|
303
|
-
this._cusTime = v;
|
|
304
|
-
},
|
|
305
|
-
enumerable: false,
|
|
306
|
-
configurable: true
|
|
307
|
-
});
|
|
308
|
-
return WaitManager;
|
|
309
|
-
}());
|
|
310
|
-
exports.WaitManager = WaitManager;
|
|
311
|
-
var wait = function (ms, resolveValue) { return __awaiter(void 0, void 0, void 0, function () {
|
|
312
|
-
return __generator(this, function (_a) {
|
|
313
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
314
|
-
setTimeout(function () {
|
|
315
|
-
var finalResolveValue = resolveValue || true;
|
|
316
|
-
resolve(finalResolveValue);
|
|
317
|
-
}, ms);
|
|
318
|
-
})];
|
|
319
|
-
});
|
|
320
|
-
}); };
|
|
321
|
-
exports.wait = wait;
|
|
322
|
-
function extractValue(data) {
|
|
323
|
-
var result = [];
|
|
324
|
-
if (data && data.length > 0) {
|
|
325
|
-
result = data.map(function (item) { return item.value; });
|
|
326
|
-
}
|
|
327
|
-
return result;
|
|
328
|
-
}
|
|
329
|
-
exports.extractValue = extractValue;
|
|
330
|
-
function keyValueToArray(data) {
|
|
331
|
-
var e_2, _a;
|
|
332
|
-
var itemArray = [];
|
|
333
|
-
var keys = Object.keys(data);
|
|
334
|
-
try {
|
|
335
|
-
for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
|
|
336
|
-
var i = keys_1_1.value;
|
|
337
|
-
itemArray.push(__assign(__assign({}, data[i]), { _id: i }));
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
341
|
-
finally {
|
|
342
|
-
try {
|
|
343
|
-
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
|
|
344
|
-
}
|
|
345
|
-
finally { if (e_2) throw e_2.error; }
|
|
346
|
-
}
|
|
347
|
-
return itemArray;
|
|
348
|
-
}
|
|
349
|
-
exports.keyValueToArray = keyValueToArray;
|
|
350
|
-
function minuted(time) {
|
|
351
|
-
var minutes = Math.floor(time / 60000).toString();
|
|
352
|
-
var seconds = Math.floor((time % 60000) / 1000).toString().padStart(2, '0');
|
|
353
|
-
return "".concat(minutes, ":").concat(seconds);
|
|
354
|
-
}
|
|
355
|
-
exports.minuted = minuted;
|
|
356
|
-
function randomDate(start, end, specificProbabilityStart, specificProbability) {
|
|
357
|
-
if (!start)
|
|
358
|
-
start = new Date('1970-1-1');
|
|
359
|
-
if (!end)
|
|
360
|
-
end = new Date();
|
|
361
|
-
if (specificProbabilityStart) {
|
|
362
|
-
if (!specificProbability)
|
|
363
|
-
specificProbability = 0.5;
|
|
364
|
-
if (Math.random() <= specificProbability) {
|
|
365
|
-
return new Date(specificProbabilityStart.getTime() + Math.random() * (end.getTime() - specificProbabilityStart.getTime()));
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
|
|
369
|
-
}
|
|
370
|
-
exports.randomDate = randomDate;
|
|
371
|
-
var capitalizeWords = function (str) { return str.replace(/(?:^|\s)\S/g, function (a) { return a.toUpperCase(); }); };
|
|
372
|
-
exports.capitalizeWords = capitalizeWords;
|
|
373
|
-
var capitalizeFirstLetter = function (str) { return str.charAt(0).toUpperCase() + str.slice(1); };
|
|
374
|
-
exports.capitalizeFirstLetter = capitalizeFirstLetter;
|
|
375
|
-
var comparerArray = function (otherArray, limitKeys) {
|
|
376
|
-
return function (current) {
|
|
377
|
-
return otherArray.filter(function (other) {
|
|
378
|
-
if (!limitKeys) {
|
|
379
|
-
return lodash_1.default.isEqual(current, other);
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
// TODO
|
|
383
|
-
}
|
|
384
|
-
}).length == 0;
|
|
385
|
-
};
|
|
386
|
-
};
|
|
387
|
-
exports.comparerArray = comparerArray;
|
|
388
|
-
var onlyInA = function (a, b) { return a.filter((0, exports.comparerArray)(b)); };
|
|
389
|
-
exports.onlyInA = onlyInA;
|
|
390
|
-
var onlyInB = function (a, b) { return b.filter((0, exports.comparerArray)(a)); };
|
|
391
|
-
exports.onlyInB = onlyInB;
|
|
392
|
-
var diffAB = function (a, b) { return (0, exports.onlyInA)(a, b).concat((0, exports.onlyInB)(a, b)); };
|
|
393
|
-
exports.diffAB = diffAB;
|
|
394
|
-
var StringUtil = /** @class */ (function () {
|
|
395
|
-
function StringUtil() {
|
|
396
|
-
}
|
|
397
|
-
// camelCase
|
|
398
|
-
StringUtil.toCamelCase = function (str) {
|
|
399
|
-
return lodash_1.default.camelCase(str);
|
|
400
|
-
};
|
|
401
|
-
// snake_case
|
|
402
|
-
StringUtil.toSnakeCase = function (str) {
|
|
403
|
-
return lodash_1.default.snakeCase(str);
|
|
404
|
-
};
|
|
405
|
-
// PascalCase
|
|
406
|
-
StringUtil.toPascalCase = function (str) {
|
|
407
|
-
return lodash_1.default.startCase(lodash_1.default.camelCase(str)).replace(/ /g, '');
|
|
408
|
-
};
|
|
409
|
-
// CONSTANT_CASE
|
|
410
|
-
StringUtil.toConstantCase = function (str) {
|
|
411
|
-
return lodash_1.default.upperCase(str).replace(/ /g, '_');
|
|
412
|
-
};
|
|
413
|
-
// kebab-case
|
|
414
|
-
StringUtil.toKebabCase = function (str) {
|
|
415
|
-
return lodash_1.default.kebabCase(str);
|
|
416
|
-
};
|
|
417
|
-
// lowercase
|
|
418
|
-
StringUtil.toLowerCase = function (str) {
|
|
419
|
-
return lodash_1.default.lowerCase(str).replace(/ /g, '');
|
|
420
|
-
};
|
|
421
|
-
// Title Case
|
|
422
|
-
StringUtil.toTitleCase = function (str) {
|
|
423
|
-
return lodash_1.default.startCase(lodash_1.default.camelCase(str));
|
|
424
|
-
};
|
|
425
|
-
// Sentence case
|
|
426
|
-
StringUtil.toSentenceCase = function (str) {
|
|
427
|
-
return lodash_1.default.upperFirst(lodash_1.default.lowerCase(str));
|
|
428
|
-
};
|
|
429
|
-
// path/case
|
|
430
|
-
StringUtil.toPathCase = function (str) {
|
|
431
|
-
return lodash_1.default.lowerCase(str).replace(/ /g, '/');
|
|
432
|
-
};
|
|
433
|
-
// dot.case
|
|
434
|
-
StringUtil.toDotCase = function (str) {
|
|
435
|
-
return lodash_1.default.lowerCase(str).replace(/ /g, '.');
|
|
436
|
-
};
|
|
437
|
-
return StringUtil;
|
|
438
|
-
}());
|
|
439
|
-
exports.StringUtil = StringUtil;
|
|
440
|
-
var deepKeysConvert = function (obj, toType) {
|
|
441
|
-
var _toType = toType || 'snake';
|
|
442
|
-
if (Array.isArray(obj)) {
|
|
443
|
-
return obj.map(function (v) { return (0, exports.deepKeysConvert)(v, _toType); });
|
|
444
|
-
}
|
|
445
|
-
else if (obj !== null && obj.constructor === Object) {
|
|
446
|
-
return Object.keys(obj).reduce(function (result, key) {
|
|
447
|
-
var _a;
|
|
448
|
-
var newKey = '';
|
|
449
|
-
switch (_toType) {
|
|
450
|
-
case 'camel':
|
|
451
|
-
newKey = StringUtil.toCamelCase(key);
|
|
452
|
-
break;
|
|
453
|
-
case 'snake':
|
|
454
|
-
newKey = StringUtil.toSnakeCase(key);
|
|
455
|
-
break;
|
|
456
|
-
case 'pascal':
|
|
457
|
-
newKey = StringUtil.toPascalCase(key);
|
|
458
|
-
break;
|
|
459
|
-
case 'constant':
|
|
460
|
-
newKey = StringUtil.toConstantCase(key);
|
|
461
|
-
break;
|
|
462
|
-
case 'kebab':
|
|
463
|
-
newKey = StringUtil.toKebabCase(key);
|
|
464
|
-
break;
|
|
465
|
-
case 'lower':
|
|
466
|
-
newKey = StringUtil.toLowerCase(key);
|
|
467
|
-
break;
|
|
468
|
-
case 'title':
|
|
469
|
-
newKey = StringUtil.toTitleCase(key);
|
|
470
|
-
break;
|
|
471
|
-
case 'sentence':
|
|
472
|
-
newKey = StringUtil.toSentenceCase(key);
|
|
473
|
-
break;
|
|
474
|
-
case 'path':
|
|
475
|
-
newKey = StringUtil.toPathCase(key);
|
|
476
|
-
break;
|
|
477
|
-
case 'dot':
|
|
478
|
-
newKey = StringUtil.toDotCase(key);
|
|
479
|
-
break;
|
|
480
|
-
default:
|
|
481
|
-
newKey = StringUtil.toDotCase(key);
|
|
482
|
-
break;
|
|
483
|
-
}
|
|
484
|
-
return __assign(__assign({}, result), (_a = {}, _a[newKey] = (0, exports.deepKeysConvert)(obj[key], _toType), _a));
|
|
485
|
-
}, {});
|
|
486
|
-
}
|
|
487
|
-
return obj;
|
|
488
|
-
};
|
|
489
|
-
exports.deepKeysConvert = deepKeysConvert;
|
|
490
|
-
var deepRemoveByKey = function (obj, keysToBeRemoved) {
|
|
491
|
-
var result = lodash_1.default.transform(obj, function (result, value, key) {
|
|
492
|
-
if (lodash_1.default.isObject(value)) {
|
|
493
|
-
value = (0, exports.deepRemoveByKey)(value, keysToBeRemoved);
|
|
494
|
-
}
|
|
495
|
-
if (!keysToBeRemoved.includes(key)) {
|
|
496
|
-
lodash_1.default.isArray(obj) ? result.push(value) : result[key] = value;
|
|
497
|
-
}
|
|
498
|
-
});
|
|
499
|
-
return result;
|
|
500
|
-
};
|
|
501
|
-
exports.deepRemoveByKey = deepRemoveByKey;
|
|
502
|
-
var deepRenameKeys = function (obj, keysMap) {
|
|
503
|
-
return lodash_1.default.transform(obj, function (result, value, key) {
|
|
504
|
-
var currentKey = keysMap[key] || key;
|
|
505
|
-
result[currentKey] = lodash_1.default.isObject(value) ? (0, exports.deepRenameKeys)(value, keysMap) : value;
|
|
506
|
-
});
|
|
507
|
-
};
|
|
508
|
-
exports.deepRenameKeys = deepRenameKeys;
|
|
509
|
-
var deepReplaceValues = function (obj, keyReducerMap) {
|
|
510
|
-
var newObject = lodash_1.default.clone(obj);
|
|
511
|
-
lodash_1.default.each(obj, function (val, key) {
|
|
512
|
-
for (var item in keyReducerMap) {
|
|
513
|
-
if (key === item) {
|
|
514
|
-
newObject[key] = keyReducerMap[item](newObject);
|
|
515
|
-
}
|
|
516
|
-
else if (typeof (val) === 'object' || val instanceof Array) {
|
|
517
|
-
newObject[key] = (0, exports.deepReplaceValues)(val, keyReducerMap);
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
});
|
|
521
|
-
return newObject;
|
|
522
|
-
};
|
|
523
|
-
exports.deepReplaceValues = deepReplaceValues;
|
|
74
|
+
// export const isObject = (object: string | JSONObject | boolean | AnyFunction | number) => object != null && typeof object === 'object';
|
|
75
|
+
// export const deepObjectStrictEqual = (object1: JSONSerializable, object2: JSONSerializable) => {
|
|
76
|
+
// const keys1 = Object.keys(object1);
|
|
77
|
+
// const keys2 = Object.keys(object2);
|
|
78
|
+
// if (keys1.length !== keys2.length) {
|
|
79
|
+
// return false;
|
|
80
|
+
// }
|
|
81
|
+
// for (const key of keys1) {
|
|
82
|
+
// const val1 = object1[key];
|
|
83
|
+
// const val2 = object2[key];
|
|
84
|
+
// const areObjects = isObject(val1) && isObject(val2);
|
|
85
|
+
// if (
|
|
86
|
+
// areObjects && !deepObjectStrictEqual(val1, val2) ||
|
|
87
|
+
// !areObjects && val1 !== val2
|
|
88
|
+
// ) {
|
|
89
|
+
// return false;
|
|
90
|
+
// }
|
|
91
|
+
// }
|
|
92
|
+
// return true;
|
|
93
|
+
// };
|
|
94
|
+
// export class StringUtil {
|
|
95
|
+
// // camelCase
|
|
96
|
+
// static toCamelCase(str: string) {
|
|
97
|
+
// return _.camelCase(str);
|
|
98
|
+
// }
|
|
99
|
+
//
|
|
100
|
+
// // snake_case
|
|
101
|
+
// static toSnakeCase(str: string) {
|
|
102
|
+
// return _.snakeCase(str);
|
|
103
|
+
// }
|
|
104
|
+
//
|
|
105
|
+
// // PascalCase
|
|
106
|
+
// static toPascalCase(str: string) {
|
|
107
|
+
// return _.startCase(_.camelCase(str)).replace(/ /g, '');
|
|
108
|
+
// }
|
|
109
|
+
//
|
|
110
|
+
// // CONSTANT_CASE
|
|
111
|
+
// static toConstantCase(str: string) {
|
|
112
|
+
// return _.upperCase(str).replace(/ /g, '_');
|
|
113
|
+
// }
|
|
114
|
+
//
|
|
115
|
+
// // kebab-case
|
|
116
|
+
// static toKebabCase(str: string) {
|
|
117
|
+
// return _.kebabCase(str);
|
|
118
|
+
// }
|
|
119
|
+
//
|
|
120
|
+
// // lowercase
|
|
121
|
+
// static toLowerCase(str: string) {
|
|
122
|
+
// return _.lowerCase(str).replace(/ /g, '');
|
|
123
|
+
// }
|
|
124
|
+
//
|
|
125
|
+
// // Title Case
|
|
126
|
+
// static toTitleCase(str: string) {
|
|
127
|
+
// return _.startCase(_.camelCase(str));
|
|
128
|
+
// }
|
|
129
|
+
//
|
|
130
|
+
// // Sentence case
|
|
131
|
+
// static toSentenceCase(str: string) {
|
|
132
|
+
// return _.upperFirst(_.lowerCase(str));
|
|
133
|
+
// }
|
|
134
|
+
//
|
|
135
|
+
// // path/case
|
|
136
|
+
// static toPathCase(str: string) {
|
|
137
|
+
// return _.lowerCase(str).replace(/ /g, '/');
|
|
138
|
+
// }
|
|
139
|
+
//
|
|
140
|
+
// // dot.case
|
|
141
|
+
// static toDotCase(str: string) {
|
|
142
|
+
// return _.lowerCase(str).replace(/ /g, '.');
|
|
143
|
+
// }
|
|
144
|
+
// }
|
|
145
|
+
// export const deepKeysConvert = (obj: any, toType?: CaseType): any => {
|
|
146
|
+
// const _toType = toType || 'snake';
|
|
147
|
+
// if (Array.isArray(obj)) {
|
|
148
|
+
// return obj.map(v => deepKeysConvert(v, _toType));
|
|
149
|
+
// } else if (obj !== null && obj.constructor === Object) {
|
|
150
|
+
// return Object.keys(obj).reduce(
|
|
151
|
+
// (result, key) => {
|
|
152
|
+
// let newKey = '';
|
|
153
|
+
// switch (_toType) {
|
|
154
|
+
// case 'camel':
|
|
155
|
+
// newKey = StringUtil.toCamelCase(key);
|
|
156
|
+
// break;
|
|
157
|
+
// case 'snake':
|
|
158
|
+
// newKey = StringUtil.toSnakeCase(key);
|
|
159
|
+
// break;
|
|
160
|
+
// case 'pascal':
|
|
161
|
+
// newKey = StringUtil.toPascalCase(key);
|
|
162
|
+
// break;
|
|
163
|
+
// case 'constant':
|
|
164
|
+
// newKey = StringUtil.toConstantCase(key);
|
|
165
|
+
// break;
|
|
166
|
+
// case 'kebab':
|
|
167
|
+
// newKey = StringUtil.toKebabCase(key);
|
|
168
|
+
// break;
|
|
169
|
+
// case 'lower':
|
|
170
|
+
// newKey = StringUtil.toLowerCase(key);
|
|
171
|
+
// break;
|
|
172
|
+
// case 'title':
|
|
173
|
+
// newKey = StringUtil.toTitleCase(key);
|
|
174
|
+
// break;
|
|
175
|
+
// case 'sentence':
|
|
176
|
+
// newKey = StringUtil.toSentenceCase(key);
|
|
177
|
+
// break;
|
|
178
|
+
// case 'path':
|
|
179
|
+
// newKey = StringUtil.toPathCase(key);
|
|
180
|
+
// break;
|
|
181
|
+
// case 'dot':
|
|
182
|
+
// newKey = StringUtil.toDotCase(key);
|
|
183
|
+
// break;
|
|
184
|
+
// default:
|
|
185
|
+
// newKey = StringUtil.toDotCase(key);
|
|
186
|
+
// break;
|
|
187
|
+
// }
|
|
188
|
+
// return {
|
|
189
|
+
// ...result,
|
|
190
|
+
// [newKey]: deepKeysConvert(obj[key], _toType),
|
|
191
|
+
// };
|
|
192
|
+
// },
|
|
193
|
+
// {},
|
|
194
|
+
// );
|
|
195
|
+
// }
|
|
196
|
+
// return obj;
|
|
197
|
+
// };
|
|
198
|
+
// export const deepRemoveByKey = (obj: any, keysToBeRemoved: string[]) => {
|
|
199
|
+
// const result = _.transform(obj, function (result: JSONSerializable, value: any, key: string) {
|
|
200
|
+
// if (_.isObject(value)) {
|
|
201
|
+
// value = deepRemoveByKey(value, keysToBeRemoved);
|
|
202
|
+
// }
|
|
203
|
+
// if (!keysToBeRemoved.includes(key)) {
|
|
204
|
+
// _.isArray(obj) ? result.push(value) : result[key] = value;
|
|
205
|
+
// }
|
|
206
|
+
// });
|
|
207
|
+
// return result as typeof obj;
|
|
208
|
+
// };
|
|
209
|
+
// export const deepRenameKeys = (obj: JSONSerializable, keysMap: { [key in string]: string }) => {
|
|
210
|
+
// return _.transform(obj, function (result: JSONSerializable, value: any, key: string | number) {
|
|
211
|
+
// const currentKey = keysMap[key] || key;
|
|
212
|
+
// result[currentKey] = _.isObject(value) ? deepRenameKeys(value, keysMap) : value;
|
|
213
|
+
// });
|
|
214
|
+
// };
|
|
215
|
+
// export const deepReplaceValues = (obj: JSONSerializable, keyReducerMap: { [key in string]: (item: JSONSerializable) => any }) => {
|
|
216
|
+
// const newObject = _.clone(obj) as JSONSerializable;
|
|
217
|
+
// _.each(obj, (val: any, key: string) => {
|
|
218
|
+
// for (const item in keyReducerMap) {
|
|
219
|
+
// if (key === item) {
|
|
220
|
+
// newObject[key] = keyReducerMap[item](newObject);
|
|
221
|
+
// } else if (typeof (val) === 'object' || val instanceof Array) {
|
|
222
|
+
// newObject[key] = deepReplaceValues(val, keyReducerMap);
|
|
223
|
+
// }
|
|
224
|
+
// }
|
|
225
|
+
// });
|
|
226
|
+
// return newObject;
|
|
227
|
+
// };
|
|
524
228
|
// TODO determine depth and pass root node as a param through callback
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
};
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
566
|
-
args[_i - 1] = arguments[_i];
|
|
567
|
-
}
|
|
568
|
-
return console.error.apply(console, __spreadArray([styleHeader(headerLog), styleString('red')], __read(args), false));
|
|
569
|
-
}
|
|
570
|
-
};
|
|
571
|
-
var timeStart = function () {
|
|
572
|
-
return performance ? performance.now() : new Date().getTime();
|
|
573
|
-
};
|
|
574
|
-
exports.timeStart = timeStart;
|
|
575
|
-
var timeEnd = function (startTime, headerLog, consoleConditionFn) {
|
|
576
|
-
var timeSpent = (performance ? performance.now() : new Date().getTime()) - startTime;
|
|
577
|
-
var isPassCondition = consoleConditionFn ? consoleConditionFn(timeSpent) : true;
|
|
578
|
-
if (isPassCondition) {
|
|
579
|
-
exports.bunnyConsole.log(headerLog ? headerLog : 'time spent', timeSpent.toFixed(2));
|
|
580
|
-
}
|
|
581
|
-
};
|
|
582
|
-
exports.timeEnd = timeEnd;
|
|
229
|
+
// export const deepAdd = (obj: JSONSerializable, keyReducerMap: { [key in string]: (item: JSONSerializable) => any }, isItemRootParent?: boolean) => {
|
|
230
|
+
// const newObject = _.clone(obj) as JSONObject | [];
|
|
231
|
+
// if (_.isObject(newObject) && !_.isArray(newObject)) {
|
|
232
|
+
// for (const item in keyReducerMap) {
|
|
233
|
+
// newObject[item] = keyReducerMap[item](newObject);
|
|
234
|
+
// }
|
|
235
|
+
// }
|
|
236
|
+
// _.each(obj, (val: any, key: string | number) => {
|
|
237
|
+
// if (_.isObject(val)) {
|
|
238
|
+
// for (const item in keyReducerMap) {
|
|
239
|
+
// // @ts-ignore
|
|
240
|
+
// newObject[key] = deepAdd(val, keyReducerMap, isItemRootParent);
|
|
241
|
+
// }
|
|
242
|
+
// }
|
|
243
|
+
// });
|
|
244
|
+
// return newObject;
|
|
245
|
+
// };
|
|
246
|
+
// const styleString = (color: string) => `color: ${color}; font-weight: bold`;
|
|
247
|
+
// const styleHeader = (header: string) => `%c[${header}]`;
|
|
248
|
+
// export const bunnyConsole = {
|
|
249
|
+
// log: (headerLog = 'bunny', ...args: any[]) => {
|
|
250
|
+
// return console.log(styleHeader(headerLog), styleString('black'), ...args);
|
|
251
|
+
// },
|
|
252
|
+
// warn: (headerLog = 'bunny', ...args: any[]) => {
|
|
253
|
+
// return console.warn(styleHeader(headerLog), styleString('orange'), ...args);
|
|
254
|
+
// },
|
|
255
|
+
// error: (headerLog = 'bunny', ...args: any[]) => {
|
|
256
|
+
// return console.error(styleHeader(headerLog), styleString('red'), ...args);
|
|
257
|
+
// }
|
|
258
|
+
// };
|
|
259
|
+
// export const timeStart = () => {
|
|
260
|
+
// return performance ? performance.now() : new Date().getTime();
|
|
261
|
+
// };
|
|
262
|
+
// export const timeEnd = (startTime: number, headerLog?: string, consoleConditionFn?: (timeSpent: number) => boolean) => {
|
|
263
|
+
// const timeSpent = (performance ? performance.now() : new Date().getTime()) - startTime;
|
|
264
|
+
// const isPassCondition = consoleConditionFn ? consoleConditionFn(timeSpent) : true;
|
|
265
|
+
// if (isPassCondition) {
|
|
266
|
+
// bunnyConsole.log(headerLog ? headerLog : 'time spent', timeSpent.toFixed(2));
|
|
267
|
+
// }
|
|
268
|
+
// };
|
|
583
269
|
var arrayRemove = function (array, predicate) {
|
|
584
270
|
var i = -1, len = array ? array.length : 0;
|
|
585
271
|
var result = [];
|
|
@@ -594,41 +280,6 @@ var arrayRemove = function (array, predicate) {
|
|
|
594
280
|
return result;
|
|
595
281
|
};
|
|
596
282
|
exports.arrayRemove = arrayRemove;
|
|
597
|
-
function memo() {
|
|
598
|
-
var cache = {};
|
|
599
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
600
|
-
return function (target, propertyKey, descriptor) {
|
|
601
|
-
var originalMethod = descriptor.value;
|
|
602
|
-
descriptor.value = function () {
|
|
603
|
-
var args = [];
|
|
604
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
605
|
-
args[_i] = arguments[_i];
|
|
606
|
-
}
|
|
607
|
-
var cacheKey = "__cacheKey__".concat(args.toString());
|
|
608
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
609
|
-
if (!cache.hasOwnProperty(cacheKey)) {
|
|
610
|
-
cache[cacheKey] = originalMethod.apply(this, args);
|
|
611
|
-
}
|
|
612
|
-
return cache[cacheKey];
|
|
613
|
-
};
|
|
614
|
-
};
|
|
615
|
-
}
|
|
616
|
-
exports.memo = memo;
|
|
617
|
-
function zip(array1, array2, options) {
|
|
618
|
-
var zipped = [];
|
|
619
|
-
var zippedObjCoords = [];
|
|
620
|
-
var isToObj = (options ? options : { isToObj: false }).isToObj;
|
|
621
|
-
for (var i = 0; i < array1.length; i++) {
|
|
622
|
-
if (isToObj) {
|
|
623
|
-
zippedObjCoords.push({ x: array1[i], y: array2[i] });
|
|
624
|
-
}
|
|
625
|
-
else {
|
|
626
|
-
zipped.push([array1[i], array2[i]]);
|
|
627
|
-
}
|
|
628
|
-
}
|
|
629
|
-
return isToObj ? zippedObjCoords : zipped;
|
|
630
|
-
}
|
|
631
|
-
exports.zip = zip;
|
|
632
283
|
exports.THUNK_SYMBOL = Symbol('thunk');
|
|
633
284
|
var isThunk = function (fnOrValue) {
|
|
634
285
|
return typeof fnOrValue === 'function' && fnOrValue.__THUNK__ === exports.THUNK_SYMBOL;
|