UNPKG

react-scripts

Version:
47 lines (40 loc) 3.46 kB
"use strict"; /** * This file is a bit of a mess. If you're looking at it as a reference for how to write a preset, * I'd recommend looking only at `function preset(){}` and ignoring the rest, unless your new preset * really needs to work on babel-core < 6.13.x, which is unlikely. */ /** * This preset was originally an object, before function-based configurable presets were introduced. * For backward-compatibility with anything that may have been loading this preset and expecting * it to be a simple Babel config object, we maintain the old config here. */ module.exports = preset({}); // For backward compatibility with babel-core < v6.13.x, we use the 'buildPreset' property // of the preset object for the preset creation function. Object.defineProperty(module.exports, "buildPreset", { configurable: true, writable: true, // We make this non-enumerable so old versions of babel-core won't see it as an unknown property, // while allowing new versions to see it as a preset builder function. enumerable: false, value: preset }); function preset(context, opts) { var moduleTypes = ["commonjs", "amd", "umd", "systemjs"]; var loose = false; var modules = "commonjs"; if (opts !== undefined) { if (opts.loose !== undefined) loose = opts.loose; if (opts.modules !== undefined) modules = opts.modules; } if (typeof loose !== "boolean") throw new Error("Preset es2015 'loose' option must be a boolean."); if (modules !== false && moduleTypes.indexOf(modules) === -1) { 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'"); } return { plugins: [[require("babel-plugin-transform-es2015-template-literals"), { loose: loose }], require("babel-plugin-transform-es2015-literals"), require("babel-plugin-transform-es2015-function-name"), [require("babel-plugin-transform-es2015-arrow-functions")], 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 out falsy values ].filter(Boolean) }; }