1 | 'use strict';
|
2 |
|
3 | const IS_NODE_SEVEN = process.version.charAt(1) === '7';
|
4 | const HAS_HARMONY_FLAG = process.execArgv.includes('--harmony');
|
5 |
|
6 | const plugins = (...items) => {
|
7 | const defaultPlugins = [
|
8 | 'transform-class-properties',
|
9 | 'transform-flow-strip-types',
|
10 | 'transform-es2015-modules-commonjs',
|
11 | ['transform-object-rest-spread', {
|
12 | useBuiltIns: true
|
13 | }]
|
14 | ];
|
15 |
|
16 | if (!IS_NODE_SEVEN) {
|
17 | defaultPlugins.push(
|
18 | 'babel-plugin-transform-exponentiation-operator',
|
19 | 'babel-plugin-transform-async-to-generator'
|
20 | );
|
21 | } else if (!HAS_HARMONY_FLAG) {
|
22 | defaultPlugins.push('babel-plugin-transform-async-to-generator');
|
23 | }
|
24 |
|
25 | return items.concat(defaultPlugins);
|
26 | };
|
27 |
|
28 |
|
29 | require('babel-core/register')({
|
30 | babelrc: false,
|
31 | plugins: plugins(),
|
32 | env: {
|
33 | test: {
|
34 | sourceMaps: 'inline',
|
35 | plugins: plugins(['istanbul', {
|
36 | include: [
|
37 | 'src/**/*.js'
|
38 | ],
|
39 | exclude: [
|
40 | '**/test',
|
41 | '**/errors',
|
42 | '**/interfaces.js'
|
43 | ]
|
44 | }])
|
45 | }
|
46 | }
|
47 | });
|