You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
10 KiB
67 lines
10 KiB
4 years ago
|
"use strict";
|
||
|
|
||
|
var _object = _interopRequireDefault(require("object.omit"));
|
||
|
|
||
|
var _deepmerge = _interopRequireDefault(require("deepmerge"));
|
||
|
|
||
|
var _core = require("@babel/core");
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
|
||
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
||
|
|
||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
function arrayMerge(source = [], overrides = []) {
|
||
|
return [...new Set([...source, ...overrides])];
|
||
|
}
|
||
|
|
||
|
function mergeArray(source = [], overrides = [], resolve, deepmergeOpts) {
|
||
|
return [...source, ...overrides].reduce((reduction, override) => {
|
||
|
const overrideName = resolve(Array.isArray(override) ? override[0] : override);
|
||
|
const overrideOptions = Array.isArray(override) ? override[1] : {};
|
||
|
const base = reduction.find(base => {
|
||
|
const baseName = resolve(Array.isArray(base) ? base[0] : base);
|
||
|
return baseName === overrideName || baseName.includes(overrideName);
|
||
|
});
|
||
|
const index = reduction.includes(base) ? reduction.indexOf(base) : reduction.length;
|
||
|
const baseName = base ? resolve(Array.isArray(base) ? base[0] : base) : overrideName;
|
||
|
const baseOptions = Array.isArray(base) ? base[1] : {};
|
||
|
const options = (0, _deepmerge.default)(baseOptions, overrideOptions, _objectSpread({
|
||
|
arrayMerge,
|
||
|
isMergeableObject: value => Array.isArray(value)
|
||
|
}, deepmergeOpts));
|
||
|
reduction[index] = Object.keys(options).length ? [baseName, options] : baseName;
|
||
|
return reduction;
|
||
|
}, []);
|
||
|
}
|
||
|
|
||
|
function babelMerge(source = {}, overrides = {}, deepmergeOpts) {
|
||
|
const plugins = mergeArray(source.plugins, overrides.plugins, _core.resolvePlugin, deepmergeOpts);
|
||
|
const presets = mergeArray(source.presets, overrides.presets, _core.resolvePreset, deepmergeOpts);
|
||
|
const sourceEnv = source.env || {};
|
||
|
const overridesEnv = overrides.env || {};
|
||
|
return Object.assign(presets.length ? {
|
||
|
presets
|
||
|
} : {}, plugins.length ? {
|
||
|
plugins
|
||
|
} : {}, _deepmerge.default.all([(0, _object.default)(source, ['plugins', 'presets', 'env']), (0, _object.default)(overrides, ['plugins', 'presets', 'env']), ...[...new Set([...Object.keys(sourceEnv), ...Object.keys(overridesEnv)])].map(name => ({
|
||
|
env: {
|
||
|
[name]: babelMerge(sourceEnv[name], overridesEnv[name], deepmergeOpts)
|
||
|
}
|
||
|
}))], _objectSpread({
|
||
|
arrayMerge
|
||
|
}, deepmergeOpts)));
|
||
|
}
|
||
|
|
||
|
Object.defineProperty(babelMerge, 'all', {
|
||
|
value: (values = [], deepmergeOpts) => values.reduce((acc, value) => {
|
||
|
if (value) {
|
||
|
Object.assign(acc, babelMerge(acc, value, deepmergeOpts));
|
||
|
}
|
||
|
|
||
|
return acc;
|
||
|
}, {})
|
||
|
});
|
||
|
module.exports = babelMerge;
|
||
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhcnJheU1lcmdlIiwic291cmNlIiwib3ZlcnJpZGVzIiwiU2V0IiwibWVyZ2VBcnJheSIsInJlc29sdmUiLCJkZWVwbWVyZ2VPcHRzIiwicmVkdWNlIiwicmVkdWN0aW9uIiwib3ZlcnJpZGUiLCJvdmVycmlkZU5hbWUiLCJBcnJheSIsImlzQXJyYXkiLCJvdmVycmlkZU9wdGlvbnMiLCJiYXNlIiwiZmluZCIsImJhc2VOYW1lIiwiaW5jbHVkZXMiLCJpbmRleCIsImluZGV4T2YiLCJsZW5ndGgiLCJiYXNlT3B0aW9ucyIsIm9wdGlvbnMiLCJpc01lcmdlYWJsZU9iamVjdCIsInZhbHVlIiwiT2JqZWN0Iiwia2V5cyIsImJhYmVsTWVyZ2UiLCJwbHVnaW5zIiwicmVzb2x2ZVBsdWdpbiIsInByZXNldHMiLCJyZXNvbHZlUHJlc2V0Iiwic291cmNlRW52IiwiZW52Iiwib3ZlcnJpZGVzRW52IiwiYXNzaWduIiwibWVyZ2UiLCJhbGwiLCJtYXAiLCJuYW1lIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZXMiLCJhY2MiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVBLFNBQVNBLFVBQVQsQ0FBb0JDLFNBQVMsRUFBN0IsRUFBaUNDLFlBQVksRUFBN0MsRUFBaUQ7QUFDL0MsU0FBTyxDQUFDLEdBQUcsSUFBSUMsR0FBSixDQUFRLENBQUMsR0FBR0YsTUFBSixFQUFZLEdBQUdDLFNBQWYsQ0FBUixDQUFKLENBQVA7QUFDRDs7QUFFRCxTQUFTRSxVQUFULENBQW9CSCxTQUFTLEVBQTdCLEVBQWlDQyxZQUFZLEVBQTdDLEVBQWlERyxPQUFqRCxFQUEwREMsYUFBMUQsRUFBeUU7QUFDdkUsU0FBTyxDQUFDLEdBQUdMLE1BQUosRUFBWSxHQUFHQyxTQUFmLEVBQTBCSyxNQUExQixDQUFpQyxDQUFDQyxTQUFELEVBQVlDLFFBQVosS0FBeUI7QUFDL0QsVUFB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
|