Skip to content

Commit

Permalink
Merge pull request #5602 from loganfsmyth/option-manager-cleanup
Browse files Browse the repository at this point in the history
Refactor OptionManager to be a short class with a bunch of pure helper functions.
  • Loading branch information
loganfsmyth committed Apr 14, 2017
2 parents a2f334b + 248c240 commit ad250ef
Show file tree
Hide file tree
Showing 8 changed files with 362 additions and 410 deletions.
20 changes: 2 additions & 18 deletions packages/babel-core/src/config/index.js
@@ -1,5 +1,5 @@
import type Plugin from "./plugin";
import OptionManager from "./option-manager";
import manageOptions from "./option-manager";

export type ResolvedConfig = {
options: Object,
Expand All @@ -10,21 +10,5 @@ export type ResolvedConfig = {
* Standard API for loading Babel configuration data. Not for public consumption.
*/
export default function loadConfig(opts: Object): ResolvedConfig|null {
const mergedOpts = new OptionManager().init(opts);
if (!mergedOpts) return null;

let passes = [];
if (mergedOpts.plugins) {
passes.push(mergedOpts.plugins);
}

// With "passPerPreset" enabled there may still be presets in the options.
if (mergedOpts.presets) {
passes = passes.concat(mergedOpts.presets.map((preset) => preset.plugins).filter(Boolean));
}

return {
options: mergedOpts,
passes,
};
return manageOptions(opts);
}
8 changes: 4 additions & 4 deletions packages/babel-core/src/config/loading/files/index-browser.js
Expand Up @@ -25,18 +25,18 @@ export function resolvePreset(name: string, dirname: string): string|null {
return null;
}

export function loadPlugin(name: string, dirname: string): { filepath: string, plugin: mixed } {
export function loadPlugin(name: string, dirname: string): { filepath: string, value: mixed } {
throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`);
}

export function loadPreset(name: string, dirname: string): { filepath: string, preset: mixed } {
export function loadPreset(name: string, dirname: string): { filepath: string, value: mixed } {
throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`);
}

export function loadParser(name: string, dirname: string): { filepath: string, parser: Function } {
export function loadParser(name: string, dirname: string): { filepath: string, value: Function } {
throw new Error(`Cannot load parser ${name} relative to ${dirname} in a browser`);
}

export function loadGenerator(name: string, dirname: string): { filepath: string, generator: Function } {
export function loadGenerator(name: string, dirname: string): { filepath: string, value: Function } {
throw new Error(`Cannot load generator ${name} relative to ${dirname} in a browser`);
}
16 changes: 8 additions & 8 deletions packages/babel-core/src/config/loading/files/plugins.js
Expand Up @@ -26,27 +26,27 @@ export function resolvePreset(presetName: string, dirname: string): string|null
return resolveFromPossibleNames(possibleNames, dirname);
}

export function loadPlugin(name: string, dirname: string): { filepath: string, plugin: mixed } {
export function loadPlugin(name: string, dirname: string): { filepath: string, value: mixed } {
const filepath = resolvePlugin(name, dirname);
if (!filepath) throw new Error(`Plugin ${name} not found relative to ${dirname}`);

return {
filepath,
plugin: requireModule(filepath),
value: requireModule(filepath),
};
}

export function loadPreset(name: string, dirname: string): { filepath: string, preset: mixed } {
export function loadPreset(name: string, dirname: string): { filepath: string, value: mixed } {
const filepath = resolvePreset(name, dirname);
if (!filepath) throw new Error(`Preset ${name} not found relative to ${dirname}`);

return {
filepath,
preset: requireModule(filepath),
value: requireModule(filepath),
};
}

export function loadParser(name: string, dirname: string): { filepath: string, parser: Function } {
export function loadParser(name: string, dirname: string): { filepath: string, value: Function } {
const filepath = resolveQuiet(name, dirname);
if (!filepath) throw new Error(`Parser ${name} not found relative to ${dirname}`);

Expand All @@ -61,11 +61,11 @@ export function loadParser(name: string, dirname: string): { filepath: string, p

return {
filepath,
parser: mod.parse,
value: mod.parse,
};
}

export function loadGenerator(name: string, dirname: string): { filepath: string, generator: Function } {
export function loadGenerator(name: string, dirname: string): { filepath: string, value: Function } {
const filepath = resolveQuiet(name, dirname);
if (!filepath) throw new Error(`Generator ${name} not found relative to ${dirname}`);

Expand All @@ -80,7 +80,7 @@ export function loadGenerator(name: string, dirname: string): { filepath: string

return {
filepath,
generator: mod.print,
value: mod.print,
};
}

Expand Down

0 comments on commit ad250ef

Please sign in to comment.