Add available plugins into separate module

This commit is contained in:
Artem Yavorsky 2017-07-22 02:34:56 +03:00 committed by Brian Ng
parent c8d2361897
commit bba7be20d2
2 changed files with 32 additions and 5 deletions

View File

@ -0,0 +1,29 @@
export const availablePlugins = {
"check-es2015-constants": require("babel-plugin-check-es2015-constants"),
"syntax-trailing-function-commas": require("babel-plugin-syntax-trailing-function-commas"),
"transform-async-to-generator": require("babel-plugin-transform-async-to-generator"),
"transform-es2015-arrow-functions": require("babel-plugin-transform-es2015-arrow-functions"),
"transform-es2015-block-scoped-functions": require("babel-plugin-transform-es2015-block-scoped-functions"),
"transform-es2015-block-scoping": require("babel-plugin-transform-es2015-block-scoping"),
"transform-es2015-classes": require("babel-plugin-transform-es2015-classes"),
"transform-es2015-computed-properties": require("babel-plugin-transform-es2015-computed-properties"),
"transform-es2015-destructuring": require("babel-plugin-transform-es2015-destructuring"),
"transform-es2015-duplicate-keys": require("babel-plugin-transform-es2015-duplicate-keys"),
"transform-es2015-for-of": require("babel-plugin-transform-es2015-for-of"),
"transform-es2015-function-name": require("babel-plugin-transform-es2015-function-name"),
"transform-es2015-literals": require("babel-plugin-transform-es2015-literals"),
"transform-es2015-modules-amd": require("babel-plugin-transform-es2015-modules-amd"),
"transform-es2015-modules-commonjs": require("babel-plugin-transform-es2015-modules-commonjs"),
"transform-es2015-modules-systemjs": require("babel-plugin-transform-es2015-modules-systemjs"),
"transform-es2015-modules-umd": require("babel-plugin-transform-es2015-modules-umd"),
"transform-es2015-object-super": require("babel-plugin-transform-es2015-object-super"),
"transform-es2015-parameters": require("babel-plugin-transform-es2015-parameters"),
"transform-es2015-shorthand-properties": require("babel-plugin-transform-es2015-shorthand-properties"),
"transform-es2015-spread": require("babel-plugin-transform-es2015-spread"),
"transform-es2015-sticky-regex": require("babel-plugin-transform-es2015-sticky-regex"),
"transform-es2015-template-literals": require("babel-plugin-transform-es2015-template-literals"),
"transform-es2015-typeof-symbol": require("babel-plugin-transform-es2015-typeof-symbol"),
"transform-es2015-unicode-regex": require("babel-plugin-transform-es2015-unicode-regex"),
"transform-exponentiation-operator": require("babel-plugin-transform-exponentiation-operator"),
"transform-regenerator": require("babel-plugin-transform-regenerator"),
};

View File

@ -10,6 +10,7 @@ import pluginList from "../data/plugins.json";
import useBuiltInsEntryPlugin from "./use-built-ins-entry-plugin";
import addUsedBuiltInsPlugin from "./use-built-ins-plugin";
import getTargets from "./targets-parser";
import availablePlugins from "./available-plugins";
import { prettifyTargets, semverify } from "./utils";
import type { Plugin, Targets } from "./types";
@ -163,16 +164,13 @@ export default function buildPreset(
const plugins = [];
if (modules !== false && moduleTransformations[modules]) {
plugins.push([
require(`babel-plugin-${moduleTransformations[modules]}`),
{ loose },
]);
plugins.push([availablePlugins[moduleTransformations[modules]], { loose }]);
}
// NOTE: not giving spec here yet to avoid compatibility issues when
// babel-plugin-transform-es2015-modules-commonjs gets its spec mode
transformations.forEach(pluginName =>
plugins.push([require(`babel-plugin-${pluginName}`), { spec, loose }]),
plugins.push([availablePlugins[pluginName], { spec, loose }]),
);
const regenerator = transformations.has("transform-regenerator");