@yookue/ts-lang-utils
Version:
Common lang utilities for typescript
18 lines • 680 B
JavaScript
import { isPlain } from "./isPlain";
import { setProp } from "./setProp";
export function defaultProps(target, props) {
var overrideNil = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
if (!target || !isPlain(target)) {
return props;
}
if (!props || !isPlain(props)) {
return target;
}
var attributes = {};
Object.entries(props).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);
}