From 1312a30d548d979f3dba46811b50a9926416778d Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Mon, 18 Dec 2017 11:13:22 -0800 Subject: [PATCH] Perform normalization in the chain building process. --- .../src/config/build-config-chain.js | 29 ++++++++++++++++--- .../babel-core/src/config/option-manager.js | 24 ++------------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/packages/babel-core/src/config/build-config-chain.js b/packages/babel-core/src/config/build-config-chain.js index 7a5838f91f..2e3858d263 100644 --- a/packages/babel-core/src/config/build-config-chain.js +++ b/packages/babel-core/src/config/build-config-chain.js @@ -247,12 +247,29 @@ function createDescriptor( }; } +function normalizeOptions(opts: ValidatedOptions): ValidatedOptions { + const options = Object.assign({}, opts); + delete options.extends; + delete options.env; + delete options.plugins; + delete options.presets; + delete options.passPerPreset; + delete options.ignore; + delete options.only; + + // "sourceMap" is just aliased to sourceMap, so copy it over as + // we merge the options together. + if (options.sourceMap) { + options.sourceMaps = options.sourceMap; + delete options.sourceMap; + } + return options; +} + /** * Load and validate the given config into a set of options, plugins, and presets. */ const processConfig = makeWeakCache((config: SimpleConfig): LoadedConfig => { - const options = config.options; - const plugins = (config.options.plugins || []).map((plugin, index) => createDescriptor(plugin, loadPlugin, config.dirname, { index, @@ -266,13 +283,17 @@ const processConfig = makeWeakCache((config: SimpleConfig): LoadedConfig => { createDescriptor(preset, loadPreset, config.dirname, { index, alias: config.alias, - ownPass: options.passPerPreset, + ownPass: config.options.passPerPreset, }), ); assertNoDuplicates(presets); - return { options, plugins, presets }; + return { + options: normalizeOptions(config.options), + plugins, + presets, + }; }); function assertNoDuplicates(items: Array): void { diff --git a/packages/babel-core/src/config/option-manager.js b/packages/babel-core/src/config/option-manager.js index 10abc8c5ae..2e9d3a4c5a 100644 --- a/packages/babel-core/src/config/option-manager.js +++ b/packages/babel-core/src/config/option-manager.js @@ -68,7 +68,6 @@ class OptionManager { presets.forEach(({ preset, pass }) => { this.mergeOptions( { - // Call dedupDescriptors() to remove 'false' descriptors. plugins: preset.plugins, presets: preset.presets, }, @@ -77,7 +76,7 @@ class OptionManager { ); preset.options.forEach(opts => { - merge(this.optionDefaults, normalizeOptions(opts)); + merge(this.optionDefaults, opts); }); }); } @@ -99,7 +98,7 @@ class OptionManager { ); chain.options.forEach(opts => { - merge(this.options, normalizeOptions(opts)); + merge(this.options, opts); }); } @@ -145,25 +144,6 @@ class OptionManager { } } -function normalizeOptions(opts: ValidatedOptions): ValidatedOptions { - const options = Object.assign({}, opts); - delete options.extends; - delete options.env; - delete options.plugins; - delete options.presets; - delete options.passPerPreset; - delete options.ignore; - delete options.only; - - // "sourceMap" is just aliased to sourceMap, so copy it over as - // we merge the options together. - if (options.sourceMap) { - options.sourceMaps = options.sourceMap; - delete options.sourceMap; - } - return options; -} - type LoadedDescriptor = { value: {}, options: {},