1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports["default"] = getBabelConfig;
|
7 |
|
8 | var browserslist = require('../template/browserslist.js');
|
9 |
|
10 | function 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 |