@yookue/ts-lang-utils
Version:
Common lang utilities for typescript
18 lines • 683 B
JavaScript
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);
}