UNPKG

1.04 kBJavaScriptView Raw
1/**
2 * Babel config is stored in `package.json` so that
3 * Jest can read it.
4 */
5const babelConfig = require('../package.json').babel;
6
7function resolve(presetsOrPlugins) {
8 return presetsOrPlugins.map(item => {
9 return typeof item === 'string'
10 ? require.resolve(item)
11 : [require.resolve(item[0]), item[1]];
12 });
13}
14
15/**
16 * To prevent `babel-register` from reading foreign Babel
17 * configs, `babelrc` has to be set to `false` and Haul's
18 * Babel config inlined into `babel-register`'s options.
19 *
20 * Also presets and plugins need to be resolved to
21 * Haul's `node_modules` directory, otherwise Babel would
22 * search from them in project's `node_modules`.
23 */
24require('@babel/register')(
25 Object.assign(
26 {
27 // Use a PNPM-compatible search pattern for node_modules.
28 ignore: [/node_modules(?!.*[/\\]haul)/],
29 retainLines: true,
30 sourceMaps: 'inline',
31 babelrc: false,
32 },
33 babelConfig,
34 {
35 presets: resolve(babelConfig.presets),
36 plugins: resolve(babelConfig.plugins),
37 }
38 )
39);