function overrideDefaults(defaults, options) {
            Object.keys(options).forEach(defaultKey => {
                if (
                    typeof options[defaultKey] === 'object' &&
                    options[defaultKey] !== null &&
                    !Array.isArray(options[defaultKey])
                ) {
                    overrideDefaults(defaults[defaultKey], options[defaultKey]);
                } else if (typeof options[defaultKey] !== 'undefined') {
                    defaults[defaultKey] = options[defaultKey];
                }
            });

            return defaults;
        }
Replaces values from objects without replacing the default object

@param defaults
@param options
@returns {object}