@idlebox/deepmerge 0.0.8 → 0.0.9
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/index.d.ts +14 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +14 -2
- package/src/tsconfig.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -22,21 +22,29 @@ export declare const custom: unique symbol;
|
|
|
22
22
|
export interface MergeStrategy {
|
|
23
23
|
/**
|
|
24
24
|
* 合并简单值
|
|
25
|
+
*
|
|
26
|
+
* 默认: 如果right不为undefined,则使用right,否则使用left
|
|
27
|
+
*
|
|
25
28
|
* @param left a中的值
|
|
26
29
|
* @param right b中的值
|
|
27
30
|
*/
|
|
28
31
|
primitive?: MergeFn<Primitive>;
|
|
29
32
|
/**
|
|
30
33
|
* 合并数组
|
|
34
|
+
*
|
|
35
|
+
* 默认: 直接使用b中的数组,丢弃a的
|
|
36
|
+
*
|
|
31
37
|
* @param left a中的值
|
|
32
|
-
* @param right b
|
|
33
|
-
* @returns 合并后的值,如果为undefined,则返回right
|
|
38
|
+
* @param right b中的值,它不一定是数组
|
|
39
|
+
* @returns 合并后的值,如果为undefined,则返回(right ?? left)
|
|
34
40
|
*/
|
|
35
41
|
array?: MergeFn<Array<any>>;
|
|
36
42
|
/**
|
|
37
43
|
* 合并普通对象
|
|
38
44
|
* 其中left一定是其他合并函数无法处理的object类型
|
|
39
45
|
*
|
|
46
|
+
* 默认: 普通深复制
|
|
47
|
+
*
|
|
40
48
|
* @param left a中的值
|
|
41
49
|
* @param right b中的值
|
|
42
50
|
* @returns 合并后的值,如果为undefined,则执行深复制逻辑
|
|
@@ -50,6 +58,10 @@ export interface MergeStrategy {
|
|
|
50
58
|
}
|
|
51
59
|
/**
|
|
52
60
|
* 深复制并合并两个对象,原对象不会修改(当然,无法限制options传入的回调)。
|
|
61
|
+
*
|
|
62
|
+
* 并且其中的对象引用完全依赖传入的options。
|
|
63
|
+
*
|
|
64
|
+
* 对返回值进行写操作可能产生意外影响。
|
|
53
65
|
*/
|
|
54
66
|
export declare function deepmerge<A, B = any>(a: A, b: B, options?: MergeStrategy): A & B;
|
|
55
67
|
export {};
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,KAAK,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAC5C;;GAEG;AACH,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC;AAEtG,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC5F,KAAK,WAAW,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,MAAM,eAAqC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC7B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,KAAK,YAAY,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAC5C;;GAEG;AACH,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,YAAY,CAAC;AAEtG,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAC5F,KAAK,WAAW,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,MAAM,eAAqC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB;;;OAGG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9C;AAiCD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,CAAC,GAAG,CAAC,CAEhF"}
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idlebox/deepmerge",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "Deep merge utility for JSON files with custom merge strategies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"chai": "^6.2.2",
|
|
16
16
|
"mocha": "^11.7.5",
|
|
17
17
|
"rimraf": "^6.1.2",
|
|
18
|
-
"@build-script/
|
|
18
|
+
"@build-script/baseline-rig": "latest",
|
|
19
19
|
"@mpis/run": "^0.0.17"
|
|
20
20
|
},
|
|
21
21
|
"sideEffects": false,
|
package/src/index.ts
CHANGED
|
@@ -26,6 +26,9 @@ export const custom = Symbol('idlebox/deepmerge/custom');
|
|
|
26
26
|
export interface MergeStrategy {
|
|
27
27
|
/**
|
|
28
28
|
* 合并简单值
|
|
29
|
+
*
|
|
30
|
+
* 默认: 如果right不为undefined,则使用right,否则使用left
|
|
31
|
+
*
|
|
29
32
|
* @param left a中的值
|
|
30
33
|
* @param right b中的值
|
|
31
34
|
*/
|
|
@@ -33,9 +36,12 @@ export interface MergeStrategy {
|
|
|
33
36
|
|
|
34
37
|
/**
|
|
35
38
|
* 合并数组
|
|
39
|
+
*
|
|
40
|
+
* 默认: 直接使用b中的数组,丢弃a的
|
|
41
|
+
*
|
|
36
42
|
* @param left a中的值
|
|
37
|
-
* @param right b
|
|
38
|
-
* @returns 合并后的值,如果为undefined,则返回right
|
|
43
|
+
* @param right b中的值,它不一定是数组
|
|
44
|
+
* @returns 合并后的值,如果为undefined,则返回(right ?? left)
|
|
39
45
|
*/
|
|
40
46
|
array?: MergeFn<Array<any>>;
|
|
41
47
|
|
|
@@ -43,6 +49,8 @@ export interface MergeStrategy {
|
|
|
43
49
|
* 合并普通对象
|
|
44
50
|
* 其中left一定是其他合并函数无法处理的object类型
|
|
45
51
|
*
|
|
52
|
+
* 默认: 普通深复制
|
|
53
|
+
*
|
|
46
54
|
* @param left a中的值
|
|
47
55
|
* @param right b中的值
|
|
48
56
|
* @returns 合并后的值,如果为undefined,则执行深复制逻辑
|
|
@@ -89,6 +97,10 @@ const defaults: StrategyRequired = {
|
|
|
89
97
|
|
|
90
98
|
/**
|
|
91
99
|
* 深复制并合并两个对象,原对象不会修改(当然,无法限制options传入的回调)。
|
|
100
|
+
*
|
|
101
|
+
* 并且其中的对象引用完全依赖传入的options。
|
|
102
|
+
*
|
|
103
|
+
* 对返回值进行写操作可能产生意外影响。
|
|
92
104
|
*/
|
|
93
105
|
export function deepmerge<A, B = any>(a: A, b: B, options?: MergeStrategy): A & B {
|
|
94
106
|
return _deepmerge(a, b, [], { ...defaults, ...options });
|
package/src/tsconfig.json
CHANGED