hexo/node_modules/hexo-util/lib/deep_merge.js

26 lines
688 B
JavaScript
Raw Normal View History

2023-10-03 11:14:36 +08:00
'use strict';
const deepmerge = require('deepmerge');
const arrayMerge = (target, source, options) => {
const destination = target.slice();
source.forEach((item, index) => {
if (typeof destination[index] === 'undefined') {
destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);
} else if (options.isMergeableObject(item)) {
destination[index] = deepmerge(target[index], item, options);
} else if (!target.includes(item)) {
destination.push(item);
}
});
return destination;
};
function deepMerge(target, source) {
return deepmerge(target, source, { arrayMerge });
}
module.exports = deepMerge;