From 6ec93d782b730a0312fde00533a848385a866f0b Mon Sep 17 00:00:00 2001 From: Richard Macklin Date: Sat, 15 Oct 2016 14:46:24 -0700 Subject: [PATCH] Extract resolveFromPossibleNames to remove duplicated logic "DRY"s the duplicated algorithm in resolvePlugin and resolvePreset --- .../babel-core/src/helpers/resolve-from-possible-names.js | 5 +++++ packages/babel-core/src/helpers/resolve-plugin.js | 4 ++-- packages/babel-core/src/helpers/resolve-preset.js | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 packages/babel-core/src/helpers/resolve-from-possible-names.js diff --git a/packages/babel-core/src/helpers/resolve-from-possible-names.js b/packages/babel-core/src/helpers/resolve-from-possible-names.js new file mode 100644 index 000000000000..e7a34adf0142 --- /dev/null +++ b/packages/babel-core/src/helpers/resolve-from-possible-names.js @@ -0,0 +1,5 @@ +import resolve from "./resolve"; + +export default function resolveFromPossibleNames(possibleNames: Array, dirname: string): ?string { + return possibleNames.reduce((accum, curr) => accum || resolve(curr, dirname), null); +} diff --git a/packages/babel-core/src/helpers/resolve-plugin.js b/packages/babel-core/src/helpers/resolve-plugin.js index 7375845d44ed..65aba0138b6e 100644 --- a/packages/babel-core/src/helpers/resolve-plugin.js +++ b/packages/babel-core/src/helpers/resolve-plugin.js @@ -1,6 +1,6 @@ -import resolve from "./resolve"; +import resolveFromPossibleNames from "./resolve-from-possible-names"; import getPossiblePluginNames from "./get-possible-plugin-names"; export default function resolvePlugin(pluginName: string, dirname: string = process.cwd()): ?string { - return getPossiblePluginNames(pluginName).reduce((accum, curr) => accum || resolve(curr, dirname), null); + return resolveFromPossibleNames(getPossiblePluginNames(pluginName), dirname); } diff --git a/packages/babel-core/src/helpers/resolve-preset.js b/packages/babel-core/src/helpers/resolve-preset.js index a7c1784ce99a..417aaf9a0130 100644 --- a/packages/babel-core/src/helpers/resolve-preset.js +++ b/packages/babel-core/src/helpers/resolve-preset.js @@ -1,6 +1,6 @@ -import resolve from "./resolve"; +import resolveFromPossibleNames from "./resolve-from-possible-names"; import getPossiblePresetNames from "./get-possible-preset-names"; export default function resolvePreset(presetName: string, dirname: string = process.cwd()): ?string { - return getPossiblePresetNames(presetName).reduce((accum, curr) => accum || resolve(curr, dirname), null); + return resolveFromPossibleNames(getPossiblePresetNames(presetName), dirname); }