@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 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 {};
@@ -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;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5B;;;;;;;OAOG;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;;GAEG;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"}
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
@@ -25,6 +25,10 @@ const defaults = {
25
25
  };
26
26
  /**
27
27
  * 深复制并合并两个对象,原对象不会修改(当然,无法限制options传入的回调)。
28
+ *
29
+ * 并且其中的对象引用完全依赖传入的options。
30
+ *
31
+ * 对返回值进行写操作可能产生意外影响。
28
32
  */
29
33
  export function deepmerge(a, b, options) {
30
34
  return _deepmerge(a, b, [], { ...defaults, ...options });
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;AAkDzD,SAAS,WAAW,CAAC,KAAU;IAC9B,OAAO,CACN,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,UAAU;QAC3B,KAAK,YAAY,MAAM;QACvB,KAAK,YAAY,IAAI,CACrB,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAqB;IAClC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QACpC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAChC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,IAAI,GAAG,EAAE;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,SAAS,CAAa,CAAI,EAAE,CAAI,EAAE,OAAuB;IACxE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AACD,SAAS,UAAU,CAAC,CAAM,EAAE,CAAM,EAAE,OAAkB,EAAE,OAAyB;IAChF,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,CAAC;YACV,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,CAAC;YACV,CAAC;QACF,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,kCAAkC,OAAO,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAQ,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,2EAA2E;IAC5E,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,CAAM;IAC5B,YAAY;IACZ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC"}
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;AA0DzD,SAAS,WAAW,CAAC,KAAU;IAC9B,OAAO,CACN,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,UAAU;QAC3B,KAAK,YAAY,MAAM;QACvB,KAAK,YAAY,IAAI,CACrB,CAAC;AACH,CAAC;AAED,MAAM,QAAQ,GAAqB;IAClC,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QACpC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAChC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,IAAI,GAAG,EAAE;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAa,CAAI,EAAE,CAAI,EAAE,OAAuB;IACxE,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AACD,SAAS,UAAU,CAAC,CAAM,EAAE,CAAM,EAAE,OAAkB,EAAE,OAAyB;IAChF,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,CAAC;YACV,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,CAAC;YACV,CAAC;QACF,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CAAC,kCAAkC,OAAO,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAQ,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,2EAA2E;IAC5E,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,CAAM;IAC5B,YAAY;IACZ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,KAAK,KAAK,MAAM,CAAC,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idlebox/deepmerge",
3
- "version": "0.0.8",
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/single-dog-asset": "latest",
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
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "@build-script/single-dog-asset/package/tsconfig.json",
2
+ "extends": "@build-script/baseline-rig/package/tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "typeRoots": ["../node_modules/@types", "../node_modules"],
5
5
  "outDir": "../lib",