@tiptap/core
Version:
headless rich text editor
21 lines (17 loc) • 510 B
text/typescript
import { isPlainObject } from './isPlainObject.js'
export function mergeDeep(
target: Record<string, any>,
source: Record<string, any>,
): Record<string, any> {
const output = { ...target }
if (isPlainObject(target) && isPlainObject(source)) {
Object.keys(source).forEach(key => {
if (isPlainObject(source[key]) && isPlainObject(target[key])) {
output[key] = mergeDeep(target[key], source[key])
} else {
output[key] = source[key]
}
})
}
return output
}