UNPKG

1.06 kBJavaScriptView Raw
1module.exports = function shopifyReactPreset(context, options = {}) {
2 const development = options.development == null
3 // eslint-disable-next-line no-process-env
4 ? (process.env.BABEL_ENV || process.env.NODE_ENV) === 'development'
5 : options.development;
6
7 const test = options.test == null
8 // eslint-disable-next-line no-process-env
9 ? (process.env.BABEL_ENV || process.env.NODE_ENV) === 'test'
10 : options.test;
11
12 const plugins = [];
13
14 const presets = [
15 [require.resolve('@babel/preset-react'), {
16 useBuiltIns: true,
17 development,
18 }],
19 ];
20
21 if (development && options.hot) {
22 plugins.unshift(
23 // Enable hot loading
24 require.resolve('react-hot-loader/babel'),
25 // Force `PureComponent`s to be `Component`s instead, which will make it
26 // so they always re-render on hot reloads
27 require.resolve('babel-plugin-transform-react-pure-to-component')
28 );
29 }
30
31 if (!test) {
32 plugins.push(require.resolve('babel-plugin-react-test-id'));
33 }
34
35 return {
36 presets,
37 plugins,
38 };
39};