Perform normalization in the chain building process.
This commit is contained in:
parent
4afbc02476
commit
1312a30d54
@ -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<BasicDescriptor>): void {
|
||||
|
||||
@ -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: {},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user