UNPKG

@yookue/ts-lang-utils

Version:

Common lang utilities for typescript

18 lines 683 B
import { isPlain } from "./isPlain"; import { setProp } from "./setProp"; export function mergeProps(target, source) { var overrideNil = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; if (!target || !isPlain(target)) { return source; } if (!source || !isPlain(source)) { return target; } var attributes = {}; Object.entries(source).filter(function (item) { return !Object.prototype.hasOwnProperty.call(target, item[0]) || overrideNil && (target[item[0]] === undefined || target[item[0]] === null); }).forEach(function (item) { return setProp(attributes, item[0], item[1]); }); return Object.assign(target, attributes); }