lib/utils.js
function mergeInner(base, mixin, mergeArrays) {
    if (base === null || typeof base !== 'object' || Array.isArray(base)) {
        throw new Error('base must be object');
    }
    if (mixin === null || typeof mixin !== 'object' || Array.isArray(mixin)) {
        throw new Error('mixin must be object');
    }
    Object.keys(mixin).forEach((name) => {
        mergeHelper(base, mixin, name, mergeArrays);
    });
}
function mergeInner(base, mixin, mergeArrays) {
    if (base === null || typeof base !== 'object' || Array.isArray(base)) {
        throw new Error('base must be object');
    }
    if (mixin === null || typeof mixin !== 'object' || Array.isArray(mixin)) {
        throw new Error('mixin must be object');
    }
    Object.keys(mixin).forEach((name) => {
        mergeHelper(base, mixin, name, mergeArrays);
    });
}
function mergeInner ( base , mixin , mergeArrays ) { if ( base === null || typeof base !== 'object' || Array . isArray ( base ) ) { throw new Error ( 'base must be object' ) ; } if ( mixin === null || typeof mixin !== 'object' || Array . isArray ( mixin ) ) { throw new Error ( 'mixin must be object' ) ; } Object . keys ( mixin ) . forEach ( ( name ) => { mergeHelper ( base , mixin , name , mergeArrays ) ; } ) ; }
Recursively merge objects

@param {object} base Base object to merge `mixin` into
@param {object} mixin Mixin object to merge into `base`
@param {boolean} [mergeArrays] Merge arrays instead of concatenating them
Recursively merge objects