2018-09-14 18:59:48 +03:00
|
|
|
module.exports = (api) => {
|
|
|
|
const env = api.env();
|
|
|
|
|
2019-12-02 14:38:53 +02:00
|
|
|
const reactOptions = {
|
|
|
|
development: false,
|
2023-05-23 11:52:27 +03:00
|
|
|
runtime: 'automatic',
|
2019-12-02 14:38:53 +02:00
|
|
|
};
|
|
|
|
|
2018-09-14 18:59:48 +03:00
|
|
|
const envOptions = {
|
|
|
|
loose: true,
|
|
|
|
modules: false,
|
2019-12-02 14:38:53 +02:00
|
|
|
debug: false,
|
2023-05-03 17:28:14 +03:00
|
|
|
include: [
|
2023-05-31 10:36:43 +03:00
|
|
|
'transform-numeric-separator',
|
2023-06-14 10:22:54 +03:00
|
|
|
'transform-optional-chaining',
|
|
|
|
'transform-nullish-coalescing-operator',
|
|
|
|
'transform-class-properties',
|
2023-05-03 17:28:14 +03:00
|
|
|
],
|
2018-09-14 18:59:48 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
const config = {
|
|
|
|
presets: [
|
2023-04-03 04:31:39 +03:00
|
|
|
'@babel/preset-typescript',
|
2019-12-02 14:38:53 +02:00
|
|
|
['@babel/react', reactOptions],
|
2018-09-14 18:59:48 +03:00
|
|
|
['@babel/env', envOptions],
|
|
|
|
],
|
|
|
|
plugins: [
|
2023-06-01 00:43:39 +03:00
|
|
|
['formatjs'],
|
2018-09-14 18:59:48 +03:00
|
|
|
'preval',
|
|
|
|
],
|
2019-12-02 14:38:53 +02:00
|
|
|
overrides: [
|
|
|
|
{
|
|
|
|
test: /tesseract\.js/,
|
|
|
|
presets: [
|
|
|
|
['@babel/env', { ...envOptions, modules: 'commonjs' }],
|
|
|
|
],
|
|
|
|
},
|
|
|
|
],
|
2018-09-14 18:59:48 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
switch (env) {
|
|
|
|
case 'production':
|
|
|
|
config.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':
|
2019-12-02 14:38:53 +02:00
|
|
|
reactOptions.development = true;
|
2018-09-14 18:59:48 +03:00
|
|
|
envOptions.debug = true;
|
|
|
|
break;
|
|
|
|
case 'test':
|
|
|
|
envOptions.modules = 'commonjs';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return config;
|
|
|
|
};
|