UNPKG

1.73 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = getBabelConfig;
7
8var browserslist = require('../template/browserslist.js');
9
10function getBabelConfig(opts) {
11 var type = opts.type,
12 typescript = opts.typescript,
13 target = opts.target,
14 verbose = opts.verbose,
15 lazy = opts.lazy,
16 runtimeHelpers = opts.runtimeHelpers;
17 var isBrowser = target === 'browser';
18 return {
19 presets: [typescript && require.resolve('@babel/preset-typescript'), [require.resolve('@babel/preset-env'), {
20 targets: isBrowser ? {
21 browsers: browserslist
22 } : {
23 node: 8
24 },
25 debug: verbose,
26 modules: type === 'esm' ? false : 'auto'
27 }], isBrowser && require.resolve('@babel/preset-react')].filter(Boolean),
28 plugins: [type === 'cjs' && lazy && !isBrowser && [require.resolve('@babel/plugin-transform-modules-commonjs'), {
29 lazy: true
30 }], [require.resolve('@babel/plugin-proposal-decorators'), {
31 legacy: true
32 }], require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('@babel/plugin-proposal-export-default-from'), require.resolve('@babel/plugin-proposal-export-namespace-from'), require.resolve('@babel/plugin-proposal-do-expressions'), require.resolve('@babel/plugin-proposal-object-rest-spread'), require.resolve('@babel/plugin-transform-spread'), require.resolve('@babel/plugin-proposal-nullish-coalescing-operator'), require.resolve('@babel/plugin-proposal-optional-chaining'), runtimeHelpers && [require.resolve('@babel/plugin-transform-runtime'), {
33 useESModules: isBrowser && type === 'esm',
34 version: require('@babel/runtime/package.json').version
35 }]].filter(Boolean)
36 };
37}
\No newline at end of file