cafe-utility 7.2.0 → 8.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.
- package/index.d.ts +6 -2
- package/index.js +26 -4
- package/package.json +2 -2
package/index.d.ts
CHANGED
|
@@ -62,7 +62,9 @@ declare function asArray(value: any): unknown[];
|
|
|
62
62
|
declare function asObject(value: any): Record<string, unknown>;
|
|
63
63
|
declare function represent(value: any): string;
|
|
64
64
|
declare function expandError(error: any, stackTrace?: boolean): string;
|
|
65
|
-
declare function
|
|
65
|
+
declare function deepMergeInPlace<X extends object, Y extends object>(target: X, source: Y): X & Y;
|
|
66
|
+
declare function deepMerge2<X extends object, Y extends object>(target: X, source: Y): X & Y;
|
|
67
|
+
declare function deepMerge3<X extends object, Y extends object, Z extends object>(target: X, sourceA: Y, sourceB: Z): X & Y & Z;
|
|
66
68
|
declare function zip<T>(objects: CafeObject<T>[], reducer: (a: T, b: T) => T): CafeObject<T>;
|
|
67
69
|
declare function zipSum(objects: CafeObject<number>[]): CafeObject<number>;
|
|
68
70
|
declare function asPageNumber(value: any): number;
|
|
@@ -394,7 +396,9 @@ export declare const Objects: {
|
|
|
394
396
|
ensureDeep: typeof ensureDeep;
|
|
395
397
|
replaceDeep: typeof replaceDeep;
|
|
396
398
|
getFirstDeep: typeof getFirstDeep;
|
|
397
|
-
|
|
399
|
+
deepMergeInPlace: typeof deepMergeInPlace;
|
|
400
|
+
deepMerge2: typeof deepMerge2;
|
|
401
|
+
deepMerge3: typeof deepMerge3;
|
|
398
402
|
mapAllAsync: typeof mapAllAsync;
|
|
399
403
|
cloneWithJson: typeof cloneWithJson;
|
|
400
404
|
sortObject: typeof sortObject;
|
package/index.js
CHANGED
|
@@ -292,7 +292,12 @@ function convertBytes(bytes) {
|
|
|
292
292
|
}
|
|
293
293
|
|
|
294
294
|
function isObject(value) {
|
|
295
|
-
return
|
|
295
|
+
return (
|
|
296
|
+
value !== null &&
|
|
297
|
+
typeof value === 'object' &&
|
|
298
|
+
!value.constructor.isBuffer &&
|
|
299
|
+
value.constructor.name !== 'Uint8Array'
|
|
300
|
+
)
|
|
296
301
|
}
|
|
297
302
|
|
|
298
303
|
function isStrictlyObject(value) {
|
|
@@ -470,14 +475,14 @@ function expandError(error, stackTrace) {
|
|
|
470
475
|
return stackTrace && error.stack ? joined + '\n' + error.stack : joined
|
|
471
476
|
}
|
|
472
477
|
|
|
473
|
-
function
|
|
478
|
+
function deepMergeInPlace(target, source) {
|
|
474
479
|
if (isStrictlyObject(target) && isStrictlyObject(source)) {
|
|
475
480
|
for (const key in source) {
|
|
476
481
|
if (isStrictlyObject(source[key])) {
|
|
477
482
|
if (!target[key]) {
|
|
478
483
|
target[key] = {}
|
|
479
484
|
}
|
|
480
|
-
|
|
485
|
+
deepMergeInPlace(target[key], source[key])
|
|
481
486
|
} else if (Array.isArray(source[key])) {
|
|
482
487
|
target[key] = [...source[key]]
|
|
483
488
|
} else {
|
|
@@ -488,6 +493,21 @@ function mergeDeep(target, source) {
|
|
|
488
493
|
return target
|
|
489
494
|
}
|
|
490
495
|
|
|
496
|
+
function deepMerge2(target, source) {
|
|
497
|
+
const result = {}
|
|
498
|
+
deepMergeInPlace(result, target)
|
|
499
|
+
deepMergeInPlace(result, source)
|
|
500
|
+
return result
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
function deepMerge3(target, sourceA, sourceB) {
|
|
504
|
+
const result = {}
|
|
505
|
+
deepMergeInPlace(result, target)
|
|
506
|
+
deepMergeInPlace(result, sourceA)
|
|
507
|
+
deepMergeInPlace(result, sourceB)
|
|
508
|
+
return result
|
|
509
|
+
}
|
|
510
|
+
|
|
491
511
|
function zip(objects, reducer) {
|
|
492
512
|
const result = {}
|
|
493
513
|
for (const object of objects) {
|
|
@@ -2229,7 +2249,9 @@ exports.Objects = {
|
|
|
2229
2249
|
ensureDeep,
|
|
2230
2250
|
replaceDeep,
|
|
2231
2251
|
getFirstDeep,
|
|
2232
|
-
|
|
2252
|
+
deepMergeInPlace,
|
|
2253
|
+
deepMerge2,
|
|
2254
|
+
deepMerge3,
|
|
2233
2255
|
mapAllAsync,
|
|
2234
2256
|
cloneWithJson,
|
|
2235
2257
|
sortObject,
|
package/package.json
CHANGED