module.exports = function(api) { var validEnv = ['development', 'test', 'production'] var currentEnv = api.env() var isDevelopmentEnv = api.env('development') var isProductionEnv = api.env('production') var isTestEnv = api.env('test') if (!validEnv.includes(currentEnv)) { throw new Error( 'Please specify a valid `NODE_ENV` or ' + '`BABEL_ENV` environment variables. Valid values are "development", ' + '"test", and "production". Instead, received: ' + JSON.stringify(currentEnv) + '.' ) } return { presets: [ isTestEnv && [ require('@babel/preset-env').default, { targets: { node: 'current' } } ], (isProductionEnv || isDevelopmentEnv) && [ require('@babel/preset-env').default, { forceAllTransforms: true, useBuiltIns: 'entry', corejs: 3, modules: false, exclude: ['transform-typeof-symbol'] } ] ].filter(Boolean), plugins: [ require('babel-plugin-macros'), require('@babel/plugin-syntax-dynamic-import').default, isTestEnv && require('babel-plugin-dynamic-import-node'), require('@babel/plugin-transform-destructuring').default, ["@babel/plugin-proposal-class-properties", { loose: true }], ["@babel/plugin-proposal-private-property-in-object", { "loose": true }], ["@babel/plugin-proposal-private-methods", { "loose": true }], ['@babel/plugin-proposal-object-rest-spread', {useBuiltIns: true}], [ require('@babel/plugin-transform-runtime').default, { helpers: false, regenerator: true, corejs: false } ], [ require('@babel/plugin-transform-regenerator').default, { async: false } ] ].filter(Boolean) } }