MCPcopy Index your code
hub / github.com/ChatLab/ChatLab / deepMerge

Method deepMerge

packages/node-runtime/src/preferences.ts:247–265  ·  view source on GitHub ↗

* Deep merge: arrays are replaced (not concatenated), objects are merged.

(base: Record<string, unknown>, override: Record<string, unknown>)

Source from the content-addressed store, hash-verified

245 * Deep merge: arrays are replaced (not concatenated), objects are merged.
246 */
247 private deepMerge(base: Record<string, unknown>, override: Record<string, unknown>): Record<string, unknown> {
248 const result = { ...base }
249 for (const [key, value] of Object.entries(override)) {
250 if (value === undefined) continue
251 if (
252 value !== null &&
253 typeof value === 'object' &&
254 !Array.isArray(value) &&
255 typeof base[key] === 'object' &&
256 base[key] !== null &&
257 !Array.isArray(base[key])
258 ) {
259 result[key] = this.deepMerge(base[key] as Record<string, unknown>, value as Record<string, unknown>)
260 } else {
261 result[key] = value
262 }
263 }
264 return result
265 }
266}

Callers 1

saveMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected