module.exports = function merge(def, given) {
if (!given) return def;
for (const key in def) {
if (!{}.hasOwnProperty.call(given, key)) {
given[key] = def[key];
} else if (given[key] === Object(given[key])) {
given[key] = merge(def[key], given[key]);
}
}
return given;
};