deepMerge
Recursively merge two objects. At each level, properties from obj2 override obj1. Nested objects are merged recursively (not replaced).
obj1(required): base objectobj2(required): override object
utlx
let base = {server: {host: "localhost", port: 5432, ssl: false}}
let prod = {server: {host: "prod-db.example.com", ssl: true}}
{
config: deepMerge(base, prod)
}
// Output: {config: {server: {host: "prod-db.example.com", port: 5432, ssl: true}}}
// port survived from base — deep merge, not replaceContrast with spread: {...base, ...prod} would REPLACE the entire server object, losing port. deepMerge preserves nested properties.