MCPcopy
hub / github.com/nhn/tui.chart / deepMergedCopy

Function deepMergedCopy

apps/chart/src/helpers/utils.ts:246–267  ·  view source on GitHub ↗
(
  targetObj: T1,
  obj: T2
)

Source from the content-addressed store, hash-verified

244}
245
246export function deepMergedCopy<T1 extends Record<string, any>, T2 extends Record<string, any>>(
247 targetObj: T1,
248 obj: T2
249) {
250 const resultObj = { ...targetObj } as T1 & T2;
251
252 Object.keys(obj).forEach((prop: keyof T2) => {
253 if (isObject(resultObj[prop])) {
254 if (Array.isArray(obj[prop])) {
255 resultObj[prop as keyof T1 & T2] = deepCopyArray(obj[prop]);
256 } else if (resultObj.hasOwnProperty(prop)) {
257 resultObj[prop] = deepMergedCopy(resultObj[prop], obj[prop]);
258 } else {
259 resultObj[prop as keyof T1 & T2] = deepCopy(obj[prop]);
260 }
261 } else {
262 resultObj[prop as keyof T1 & T2] = obj[prop];
263 }
264 });
265
266 return resultObj;
267}
268
269export function deepCopyArray<T extends Array<any>>(items: T): T {
270 return items.map((item: T[number]) => {

Callers 15

renderLinePointsModelMethod · 0.90
getThemeFunction · 0.90
getLegendStateFunction · 0.90
setAxesDataFunction · 0.90
getOptionsBySizeFunction · 0.90
updateOptionsFunction · 0.90

Calls 4

isObjectFunction · 0.70
deepCopyArrayFunction · 0.70
deepCopyFunction · 0.70
forEachMethod · 0.45

Tested by 1

getChartStateFunction · 0.72