@leafer/data
Advanced tools
+2
-2
| { | ||
| "name": "@leafer/data", | ||
| "version": "1.1.0", | ||
| "version": "1.1.1", | ||
| "description": "@leafer/data", | ||
@@ -25,4 +25,4 @@ "author": "Chao (Leafer) Wan", | ||
| "devDependencies": { | ||
| "@leafer/interface": "1.1.0" | ||
| "@leafer/interface": "1.1.1" | ||
| } | ||
| } |
@@ -12,11 +12,12 @@ import { IBooleanMap, IObject } from '@leafer/interface' | ||
| assign(t: IObject, merge: IObject): void { | ||
| assign(t: IObject, merge: IObject, exclude?: IObject): void { | ||
| let value: unknown | ||
| Object.keys(merge).forEach(key => { | ||
| value = merge[key] | ||
| if (value?.constructor === Object) { | ||
| (t[key]?.constructor === Object) ? assign(t[key], merge[key]) : t[key] = merge[key] | ||
| } else { | ||
| t[key] = merge[key] | ||
| if (value?.constructor === Object && t[key]?.constructor === Object) return assign(t[key], merge[key], exclude && exclude[key]) | ||
| if (exclude && (key in exclude)) { | ||
| if (exclude[key]?.constructor === Object) assign(t[key] = {}, merge[key], exclude[key]) | ||
| return | ||
| } | ||
| t[key] = merge[key] | ||
| }) | ||
@@ -23,0 +24,0 @@ }, |
+1
-1
@@ -5,3 +5,3 @@ import { IObject, IBooleanMap, ILeafData, ILeaf, IPathCommandData, IJSONOptions } from '@leafer/interface'; | ||
| default<T>(t: T, defaultData: IObject): T; | ||
| assign(t: IObject, merge: IObject): void; | ||
| assign(t: IObject, merge: IObject, exclude?: IObject): void; | ||
| copyAttrs(t: IObject, from: IObject, include: string[]): IObject; | ||
@@ -8,0 +8,0 @@ clone(data: unknown): IObject; |
9021
2.01%198
0.51%