module.exports = (api) => { const env = api.env(); const reactOptions = { development: false, runtime: "automatic", }; const envOptions = { loose: true, modules: false, debug: false, include: [ "transform-numeric-separator", "transform-optional-chaining", "transform-nullish-coalescing-operator", "transform-class-properties", ], }; const config = { presets: [ "@babel/preset-typescript", ["@babel/react", reactOptions], ["@babel/env", envOptions], ], plugins: [ ["formatjs"], "preval", ], overrides: [ { test: /tesseract\.js/, presets: [ ["@babel/env", { ...envOptions, modules: "commonjs" }], ], }, ], }; 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": reactOptions.development = true; envOptions.debug = true; break; case "test": envOptions.modules = "commonjs"; break; } return config; };