setup-dotnet/node_modules/@octokit/endpoint/dist-src/util/merge-deep.js

17 lines
536 B
JavaScript
Raw Normal View History

2019-09-10 00:27:23 +07:00
import isPlainObject from "is-plain-object";
export function mergeDeep(defaults, options) {
const result = Object.assign({}, defaults);
Object.keys(options).forEach(key => {
if (isPlainObject(options[key])) {
if (!(key in defaults))
Object.assign(result, { [key]: options[key] });
else
result[key] = mergeDeep(defaults[key], options[key]);
}
else {
Object.assign(result, { [key]: options[key] });
}
});
return result;
}