2025-04-02 06:50:39 -04:00

38 lines
859 B
JavaScript

'use strict';
var objUtils = require('./util/object');
function getOptions(options, defaults) {
if (objUtils.isPlainObject(options)) {
var newOptions = {};
for (var i in defaults) {
if (defaults.hasOwnProperty(i)) {
if (options[i] !== undefined) {
newOptions[i] = mergeOption(options[i], defaults[i]);
} else {
newOptions[i] = defaults[i];
}
}
}
return newOptions;
} else {
return defaults;
}
}
function mergeOption(newValues, defaultValues) {
if (defaultValues instanceof Object && newValues instanceof Object) {
if (defaultValues instanceof Array && newValues instanceof Array) {
return defaultValues.concat(newValues);
} else {
return objUtils.shallowMerge(newValues, defaultValues);
}
}
return newValues;
}
module.exports = getOptions;