// https://babeljs.io/docs/en/options#babelrcroots const { extendDefaultPlugins } = require('svgo'); module.exports = { babelrcRoots: ['./platform/*', './extensions/*', './modes/*'], presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-typescript'], plugins: [ ['@babel/plugin-proposal-class-properties', { loose: true }], '@babel/plugin-transform-typescript', ['@babel/plugin-proposal-private-property-in-object', { loose: true }], ['@babel/plugin-proposal-private-methods', { loose: true }], '@babel/plugin-transform-class-static-block', ], env: { test: { presets: [ [ // TODO: https://babeljs.io/blog/2019/03/19/7.4.0#migration-from-core-js-2 '@babel/preset-env', { modules: 'commonjs', debug: false, }, ], '@babel/preset-react', '@babel/preset-typescript', ], plugins: [ '@babel/plugin-proposal-object-rest-spread', '@babel/plugin-syntax-dynamic-import', '@babel/plugin-transform-regenerator', '@babel/transform-destructuring', '@babel/plugin-transform-runtime', '@babel/plugin-transform-typescript', '@babel/plugin-transform-class-static-block', ], }, production: { presets: [ // WebPack handles ES6 --> Target Syntax ['@babel/preset-env', { modules: false }], '@babel/preset-react', '@babel/preset-typescript', ], ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'], }, development: { presets: [ // WebPack handles ES6 --> Target Syntax ['@babel/preset-env', { modules: false }], '@babel/preset-react', '@babel/preset-typescript', ], plugins: ['react-refresh/babel'], ignore: ['**/*.test.jsx', '**/*.test.js', '__snapshots__', '__tests__'], }, }, };