Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renaud Chaput <renchap@gmail.com>
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module.exports = (api) => {
 | 
						|
  const env = api.env();
 | 
						|
 | 
						|
  const reactOptions = {
 | 
						|
    development: false,
 | 
						|
    runtime: 'automatic',
 | 
						|
  };
 | 
						|
 | 
						|
  const envOptions = {
 | 
						|
    useBuiltIns: "usage",
 | 
						|
    corejs: { version: "3.30" },
 | 
						|
    debug: false,
 | 
						|
    include: [
 | 
						|
      'transform-numeric-separator',
 | 
						|
      'transform-optional-chaining',
 | 
						|
      'transform-nullish-coalescing-operator',
 | 
						|
      'transform-class-properties',
 | 
						|
    ],
 | 
						|
  };
 | 
						|
 | 
						|
  const plugins = [
 | 
						|
    ['formatjs'],
 | 
						|
    'preval',
 | 
						|
  ];
 | 
						|
 | 
						|
  switch (env) {
 | 
						|
  case 'production':
 | 
						|
    plugins.push(...[
 | 
						|
      'lodash',
 | 
						|
      [
 | 
						|
        'transform-react-remove-prop-types',
 | 
						|
        {
 | 
						|
          mode: 'remove',
 | 
						|
          removeImport: true,
 | 
						|
          additionalLibraries: [
 | 
						|
            'react-immutable-proptypes',
 | 
						|
          ],
 | 
						|
        },
 | 
						|
      ],
 | 
						|
      '@babel/transform-react-inline-elements',
 | 
						|
      [
 | 
						|
        '@babel/transform-runtime',
 | 
						|
        {
 | 
						|
          helpers: true,
 | 
						|
          regenerator: false,
 | 
						|
          useESModules: true,
 | 
						|
        },
 | 
						|
      ],
 | 
						|
    ]);
 | 
						|
    break;
 | 
						|
 | 
						|
  case 'development':
 | 
						|
    reactOptions.development = true;
 | 
						|
    envOptions.debug = true;
 | 
						|
 | 
						|
    // We need Babel to not inject polyfills in dev, as this breaks `preval` files
 | 
						|
    envOptions.useBuiltIns = false;
 | 
						|
    envOptions.corejs = undefined;
 | 
						|
    break;
 | 
						|
  }
 | 
						|
 | 
						|
  const config = {
 | 
						|
    presets: [
 | 
						|
      '@babel/preset-typescript',
 | 
						|
      ['@babel/react', reactOptions],
 | 
						|
      ['@babel/env', envOptions],
 | 
						|
    ],
 | 
						|
    plugins,
 | 
						|
    overrides: [
 | 
						|
      {
 | 
						|
        test: [/tesseract\.js/, /fuzzysort\.js/],
 | 
						|
        presets: [
 | 
						|
          ['@babel/env', { ...envOptions, modules: 'commonjs' }],
 | 
						|
        ],
 | 
						|
      },
 | 
						|
    ],
 | 
						|
  };
 | 
						|
 | 
						|
  return config;
 | 
						|
};
 |