module.exports = { compact: false, presets: [ [ '@babel/env', { useBuiltIns: 'usage', // This version must be aligned with the `core-js` version in `package.json` corejs: { version: '3.46' }, exclude: [ // Exclude Array.prototype.push polyfill, as it's not needed and affects performance in Chrome 'es.array.push', // Exclude objectSpread polyfill, as it's not needed and affects performance '@babel/plugin-transform-object-rest-spread', // Exclude _defineProperty polyfill, as it causes a bug without the objectSpread polyfill '@babel/plugin-transform-computed-properties', // Use native async functions, for performance '@babel/plugin-transform-async-to-generator', // Use native generators, for performance '@babel/plugin-transform-regenerator', // Use native async generators, for performance '@babel/plugin-transform-async-generator-functions', // Use native for-of loops, for performance '@babel/plugin-transform-for-of', ], }, ], ['@babel/react', { runtime: 'automatic' }], '@babel/typescript', ], plugins: ['macros'], overrides: [ // treat .cjs files (e.g. libraries symlinked into node_modules) as commonjs { test: /\.cjs$/, sourceType: 'script' }, { // Use [\\/] for cross-platform path separator compatibility test: /[\\/]libraries[\\/]overleaf-editor-core[\\/].*\.js$/, sourceType: 'script', }, ], }