UNPKG

2.74 kBJavaScriptView Raw
1"use strict";
2
3module.exports = preset({});
4
5Object.defineProperty(module.exports, "buildPreset", {
6 configurable: true,
7 writable: true,
8
9 enumerable: false,
10 value: preset
11});
12
13function preset(context, opts) {
14 var moduleTypes = ["commonjs", "amd", "umd", "systemjs"];
15 var loose = false;
16 var modules = "commonjs";
17 var spec = false;
18
19 if (opts !== undefined) {
20 if (opts.loose !== undefined) loose = opts.loose;
21 if (opts.modules !== undefined) modules = opts.modules;
22 if (opts.spec !== undefined) spec = opts.spec;
23 }
24
25 if (typeof loose !== "boolean") throw new Error("Preset es2015 'loose' option must be a boolean.");
26 if (typeof spec !== "boolean") throw new Error("Preset es2015 'spec' option must be a boolean.");
27 if (modules !== false && moduleTypes.indexOf(modules) === -1) {
28 throw new Error("Preset es2015 'modules' option must be 'false' to indicate no modules\n" + "or a module type which be be one of: 'commonjs' (default), 'amd', 'umd', 'systemjs'");
29 }
30
31 return {
32 plugins: [[require("babel-plugin-transform-es2015-template-literals"), { loose: loose, spec: spec }], require("babel-plugin-transform-es2015-literals"), require("babel-plugin-transform-es2015-function-name"), [require("babel-plugin-transform-es2015-arrow-functions"), { spec: spec }], require("babel-plugin-transform-es2015-block-scoped-functions"), [require("babel-plugin-transform-es2015-classes"), { loose: loose }], require("babel-plugin-transform-es2015-object-super"), require("babel-plugin-transform-es2015-shorthand-properties"), require("babel-plugin-transform-es2015-duplicate-keys"), [require("babel-plugin-transform-es2015-computed-properties"), { loose: loose }], [require("babel-plugin-transform-es2015-for-of"), { loose: loose }], require("babel-plugin-transform-es2015-sticky-regex"), require("babel-plugin-transform-es2015-unicode-regex"), require("babel-plugin-check-es2015-constants"), [require("babel-plugin-transform-es2015-spread"), { loose: loose }], require("babel-plugin-transform-es2015-parameters"), [require("babel-plugin-transform-es2015-destructuring"), { loose: loose }], require("babel-plugin-transform-es2015-block-scoping"), require("babel-plugin-transform-es2015-typeof-symbol"), modules === "commonjs" && [require("babel-plugin-transform-es2015-modules-commonjs"), { loose: loose }], modules === "systemjs" && [require("babel-plugin-transform-es2015-modules-systemjs"), { loose: loose }], modules === "amd" && [require("babel-plugin-transform-es2015-modules-amd"), { loose: loose }], modules === "umd" && [require("babel-plugin-transform-es2015-modules-umd"), { loose: loose }], [require("babel-plugin-transform-regenerator"), { async: false, asyncGenerators: false }]].filter(Boolean)
33 };
34}
\No newline at end of file