diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 31f33180bf2f..02ae9d7335c2 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -83,6 +83,7 @@ module.exports = { "error", { version: "12.17.0", ignores: ["modules"] }, ], + "@babel/development-internal/require-default-import-fallback": "error", }, }, { diff --git a/eslint/babel-eslint-plugin-development-internal/src/index.cjs b/eslint/babel-eslint-plugin-development-internal/src/index.cjs index b7b23f2a24b7..f5053c3354a1 100644 --- a/eslint/babel-eslint-plugin-development-internal/src/index.cjs +++ b/eslint/babel-eslint-plugin-development-internal/src/index.cjs @@ -1,7 +1,6 @@ -const reportErrorMessageFormat = require("./rules/report-error-message-format.cjs"); - const rules = { - "report-error-message-format": reportErrorMessageFormat, + "report-error-message-format": require("./rules/report-error-message-format.cjs"), + "require-default-import-fallback": require("./rules/require-default-import-fallback.cjs"), }; exports.rules = rules; diff --git a/eslint/babel-eslint-plugin-development-internal/src/rules/require-default-import-fallback.cjs b/eslint/babel-eslint-plugin-development-internal/src/rules/require-default-import-fallback.cjs new file mode 100644 index 000000000000..c9070def5a08 --- /dev/null +++ b/eslint/babel-eslint-plugin-development-internal/src/rules/require-default-import-fallback.cjs @@ -0,0 +1,76 @@ +module.exports = { + meta: { + type: "suggestion", + docs: { + description: "", + }, + fixable: "code", + }, + create(ctx) { + return { + ImportDeclaration(node) { + const filename = ctx.getFilename(); + const src = node.source.value; + if ( + // Not a source file in the monorepo + (!src.includes("/lib/") && !src.startsWith("@babel/")) || + // This package already always uses the ESM entrypoint. + src === "@babel/helper-plugin-test-runner" || + // Unclear if we'll convert this or it will stay as JSON. + src.startsWith("@babel/compat-data") || + // This will not become an ESM file. + src.endsWith(".cjs") || + // @babel/core automatically unwraps .default from plugins/presets. + /^@babel\/(plugin|preset)-/.test(src) || + (src.endsWith("./lib/index.js") && + /babel-(plugin|preset)-/.test(filename)) + ) { + return; + } + + const defaultSpecifier = node.specifiers.find( + spec => spec.type === "ImportDefaultSpecifier", + ); + if (!defaultSpecifier) return; + + const scope = ctx.getScope(); + + const { name: local } = defaultSpecifier.local; + const { references } = scope.variables.find(v => v.name === local); + + const isRef = node => node.type === "Identifier" && node.name === local; + const isRefDefault = node => + node.type === "MemberExpression" && + !node.computed && + node.property.name === "default" && + isRef(node.object); + + for (const { identifier } of references) { + const base = + identifier.parent.type === "MemberExpression" + ? identifier.parent.parent + : identifier.parent; + + if ( + base.type !== "LogicalExpression" || + base.operator !== "||" || + !isRefDefault(base.left) || + !isRef(base.right) + ) { + const expected = `${local}.default || ${local}`; + ctx.report({ + node: identifier, + message: `Default imports of source files must be used with an explicit fallback: \`${expected}\``, + fix(fixer) { + const base = isRefDefault(identifier.parent) + ? identifier.parent + : identifier; + return fixer.replaceText(base, `(${expected})`); + }, + }); + } + } + }, + }; + }, +}; diff --git a/packages/babel-code-frame/test/index.js b/packages/babel-code-frame/test/index.js index 9d267d24a977..59f58c481060 100644 --- a/packages/babel-code-frame/test/index.js +++ b/packages/babel-code-frame/test/index.js @@ -2,7 +2,7 @@ import chalk from "chalk"; import stripAnsi from "strip-ansi"; import _codeFrame, { codeFrameColumns } from "../lib/index.js"; -const codeFrame = _codeFrame.default; +const codeFrame = _codeFrame.default || _codeFrame; describe("@babel/code-frame", function () { test("basic usage", function () { diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index d7363e0c7e77..86a491084a44 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -66,7 +66,10 @@ }, "devDependencies": { "@babel/helper-transform-fixture-test-runner": "workspace:^", + "@babel/plugin-syntax-flow": "workspace:^", + "@babel/plugin-transform-flow-strip-types": "workspace:^", "@babel/plugin-transform-modules-commonjs": "workspace:^", + "@babel/preset-env": "workspace:^", "@jridgewell/trace-mapping": "^0.3.8", "@types/convert-source-map": "^1.5.1", "@types/debug": "^4.1.0", diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index 6220f79258ac..de42b106df8b 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -5,11 +5,11 @@ import generator from "@babel/generator"; import { fileURLToPath } from "url"; import _Plugin from "../lib/config/plugin.js"; -const Plugin = _Plugin.default; +const Plugin = _Plugin.default || _Plugin; -import presetEnv from "../../babel-preset-env/lib/index.js"; -import pluginSyntaxFlow from "../../babel-plugin-syntax-flow/lib/index.js"; -import pluginFlowStripTypes from "../../babel-plugin-transform-flow-strip-types/lib/index.js"; +import presetEnv from "@babel/preset-env"; +import pluginSyntaxFlow from "@babel/plugin-syntax-flow"; +import pluginFlowStripTypes from "@babel/plugin-transform-flow-strip-types"; const cwd = path.dirname(fileURLToPath(import.meta.url)); @@ -73,7 +73,7 @@ describe("parser and generator options", function () { return opts.parser.parse(code); }, print: function (ast) { - return generator(ast); + return (generator.default || generator)(ast); }, }; diff --git a/packages/babel-core/test/config-chain.js b/packages/babel-core/test/config-chain.js index fad83c08ad0b..446a936a6516 100644 --- a/packages/babel-core/test/config-chain.js +++ b/packages/babel-core/test/config-chain.js @@ -6,7 +6,7 @@ import * as babel from "../lib/index.js"; import rimraf from "rimraf"; import _getTargets from "@babel/helper-compilation-targets"; -const getTargets = _getTargets.default; +const getTargets = _getTargets.default || _getTargets; const dirname = path.dirname(fileURLToPath(import.meta.url)); diff --git a/packages/babel-core/test/config-loading.js b/packages/babel-core/test/config-loading.js index 46e1758b0960..4bbab5973185 100644 --- a/packages/babel-core/test/config-loading.js +++ b/packages/babel-core/test/config-loading.js @@ -8,7 +8,7 @@ import { createRequire } from "module"; const require = createRequire(import.meta.url); -const loadConfig = _loadConfigRunner.default.sync; +const loadConfig = (_loadConfigRunner.default || _loadConfigRunner).sync; describe("@babel/core config loading", () => { const FILEPATH = path.join( diff --git a/packages/babel-core/test/evaluation.js b/packages/babel-core/test/evaluation.js index 2785cb61424e..ecac1def8a92 100644 --- a/packages/babel-core/test/evaluation.js +++ b/packages/babel-core/test/evaluation.js @@ -1,7 +1,7 @@ import { parse } from "@babel/parser"; import _traverse from "@babel/traverse"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; describe("evaluation", function () { function addTest(code, type, value, notConfident) { diff --git a/packages/babel-core/test/merge-map.js b/packages/babel-core/test/merge-map.js index bc13bb35a99a..e4617c16c82f 100644 --- a/packages/babel-core/test/merge-map.js +++ b/packages/babel-core/test/merge-map.js @@ -1,5 +1,5 @@ import _mergeSourceMap from "../lib/transformation/file/merge-map.js"; -const mergeSourceMap = _mergeSourceMap.default; +const mergeSourceMap = _mergeSourceMap.default || _mergeSourceMap; describe("merge-map", () => { it("returns a plain js object", () => { diff --git a/packages/babel-core/test/path.js b/packages/babel-core/test/path.js index a70d5dac6b1d..734c73ca2efe 100644 --- a/packages/babel-core/test/path.js +++ b/packages/babel-core/test/path.js @@ -3,7 +3,7 @@ import { fileURLToPath } from "url"; import path from "path"; import _Plugin from "../lib/config/plugin.js"; -const Plugin = _Plugin.default; +const Plugin = _Plugin.default || _Plugin; const cwd = path.dirname(fileURLToPath(import.meta.url)); diff --git a/packages/babel-core/test/plugins.js b/packages/babel-core/test/plugins.js index e8675f42c5f0..9404a6ac9ece 100644 --- a/packages/babel-core/test/plugins.js +++ b/packages/babel-core/test/plugins.js @@ -2,7 +2,7 @@ import runner from "@babel/helper-transform-fixture-test-runner"; import { fileURLToPath } from "url"; import path from "path"; -runner.default( +(runner.default || runner)( path.join(path.dirname(fileURLToPath(import.meta.url)), "fixtures/plugins"), "plugins", ); diff --git a/packages/babel-core/test/transformation.js b/packages/babel-core/test/transformation.js index fd3c3337eaae..be7da8ef2652 100644 --- a/packages/babel-core/test/transformation.js +++ b/packages/babel-core/test/transformation.js @@ -2,7 +2,7 @@ import runner from "@babel/helper-transform-fixture-test-runner"; import { fileURLToPath } from "url"; import path from "path"; -runner.default( +(runner.default || runner)( path.join( path.dirname(fileURLToPath(import.meta.url)), "/fixtures/transformation", diff --git a/packages/babel-generator/test/arrow-functions.js b/packages/babel-generator/test/arrow-functions.js index 9914f7a87afd..42d17fdc0025 100644 --- a/packages/babel-generator/test/arrow-functions.js +++ b/packages/babel-generator/test/arrow-functions.js @@ -1,7 +1,7 @@ import { parse } from "@babel/parser"; import _generate from "../lib/index.js"; -const generate = _generate.default; +const generate = _generate.default || _generate; describe("parameter parentheses", () => { // Common source text for several snapshot tests diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index d8b07522264a..cd0151be5da2 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -8,8 +8,8 @@ import { fileURLToPath } from "url"; import _Printer from "../lib/printer.js"; import _generate, { CodeGenerator } from "../lib/index.js"; -const Printer = _Printer.default; -const generate = _generate.default; +const Printer = _Printer.default || _Printer; +const generate = _generate.default || _generate; describe("generation", function () { it("completeness", function () { @@ -806,7 +806,7 @@ describe("CodeGenerator", function () { }); }); -const suites = fixtures.default( +const suites = (fixtures.default || fixtures)( path.join(path.dirname(fileURLToPath(import.meta.url)), "fixtures"), ); diff --git a/packages/babel-helper-annotate-as-pure/test/index.js b/packages/babel-helper-annotate-as-pure/test/index.js index e7130287fc9d..196a0def0921 100644 --- a/packages/babel-helper-annotate-as-pure/test/index.js +++ b/packages/babel-helper-annotate-as-pure/test/index.js @@ -1,5 +1,5 @@ import _annotateAsPure from "../lib/index.js"; -const annotateAsPure = _annotateAsPure.default; +const annotateAsPure = _annotateAsPure.default || _annotateAsPure; describe("@babel/helper-annotate-as-pure", () => { it("will add leading comment", () => { diff --git a/packages/babel-helper-check-duplicate-nodes/test/index.js b/packages/babel-helper-check-duplicate-nodes/test/index.js index 0e6117d80bb7..e7282a706da8 100644 --- a/packages/babel-helper-check-duplicate-nodes/test/index.js +++ b/packages/babel-helper-check-duplicate-nodes/test/index.js @@ -1,6 +1,7 @@ import _checkDuplicateNodes from "../lib/index.js"; import { parseSync, traverse, types as t } from "@babel/core"; -const checkDuplicateNodes = _checkDuplicateNodes.default; +const checkDuplicateNodes = + _checkDuplicateNodes.default || _checkDuplicateNodes; describe("checkDuplicateNodes", () => { it("should throw on duplicate AST nodes within same parent", () => { diff --git a/packages/babel-helper-compilation-targets/test/browserslist-extends/browserslist-extends.spec.js b/packages/babel-helper-compilation-targets/test/browserslist-extends/browserslist-extends.spec.js index 6f0612f40c8c..055aa376438a 100644 --- a/packages/babel-helper-compilation-targets/test/browserslist-extends/browserslist-extends.spec.js +++ b/packages/babel-helper-compilation-targets/test/browserslist-extends/browserslist-extends.spec.js @@ -2,7 +2,7 @@ import { dirname, resolve } from "path"; import { fileURLToPath } from "url"; import _getTargets from "../../lib/index.js"; -const getTargets = _getTargets.default; +const getTargets = _getTargets.default || _getTargets; const currentDir = dirname(fileURLToPath(import.meta.url)); diff --git a/packages/babel-helper-compilation-targets/test/custom-browserslist-env/custom-browserslist-env.spec.js b/packages/babel-helper-compilation-targets/test/custom-browserslist-env/custom-browserslist-env.spec.js index 28007b8f8271..cdb3c47bcbc2 100644 --- a/packages/babel-helper-compilation-targets/test/custom-browserslist-env/custom-browserslist-env.spec.js +++ b/packages/babel-helper-compilation-targets/test/custom-browserslist-env/custom-browserslist-env.spec.js @@ -2,7 +2,7 @@ import { fileURLToPath } from "url"; import path from "path"; import _getTargets from "../../lib/index.js"; -const getTargets = _getTargets.default; +const getTargets = _getTargets.default || _getTargets; it("allows custom browserslist env", () => { const actual = getTargets( diff --git a/packages/babel-helper-compilation-targets/test/load-browserslist-package-json/load-browserslist-package-json.spec.js b/packages/babel-helper-compilation-targets/test/load-browserslist-package-json/load-browserslist-package-json.spec.js index 41de53ac9763..50356a717d67 100644 --- a/packages/babel-helper-compilation-targets/test/load-browserslist-package-json/load-browserslist-package-json.spec.js +++ b/packages/babel-helper-compilation-targets/test/load-browserslist-package-json/load-browserslist-package-json.spec.js @@ -2,7 +2,7 @@ import { fileURLToPath } from "url"; import path from "path"; import _getTargets from "../../lib/index.js"; -const getTargets = _getTargets.default; +const getTargets = _getTargets.default || _getTargets; const oldCwd = process.cwd(); diff --git a/packages/babel-helper-compilation-targets/test/load-browserslistrc/load-browserslistrc.spec.js b/packages/babel-helper-compilation-targets/test/load-browserslistrc/load-browserslistrc.spec.js index 78226efdce39..d2f7c14c1cf8 100644 --- a/packages/babel-helper-compilation-targets/test/load-browserslistrc/load-browserslistrc.spec.js +++ b/packages/babel-helper-compilation-targets/test/load-browserslistrc/load-browserslistrc.spec.js @@ -2,7 +2,7 @@ import { fileURLToPath } from "url"; import path from "path"; import _getTargets from "../../lib/index.js"; -const getTargets = _getTargets.default; +const getTargets = _getTargets.default || _getTargets; const oldCwd = process.cwd(); diff --git a/packages/babel-helper-compilation-targets/test/targets-parser.spec.js b/packages/babel-helper-compilation-targets/test/targets-parser.spec.js index cbd5b50255c7..f1c0d0c43629 100644 --- a/packages/babel-helper-compilation-targets/test/targets-parser.spec.js +++ b/packages/babel-helper-compilation-targets/test/targets-parser.spec.js @@ -3,7 +3,7 @@ import { join, dirname } from "path"; import { fileURLToPath } from "url"; import _getTargets from "../lib/index.js"; -const getTargets = _getTargets.default; +const getTargets = _getTargets.default || _getTargets; describe("getTargets", () => { it("parses", () => { diff --git a/packages/babel-helper-optimise-call-expression/test/index.js b/packages/babel-helper-optimise-call-expression/test/index.js index cee16fd03092..5f09c211f7a1 100644 --- a/packages/babel-helper-optimise-call-expression/test/index.js +++ b/packages/babel-helper-optimise-call-expression/test/index.js @@ -3,8 +3,9 @@ import * as t from "@babel/types"; import _generator from "@babel/generator"; import _optimizeCallExpression from "../lib/index.js"; -const generator = _generator.default; -const optimizeCallExpression = _optimizeCallExpression.default; +const generator = _generator.default || _generator; +const optimizeCallExpression = + _optimizeCallExpression.default || _optimizeCallExpression; function transformInput(input, thisIdentifier) { const ast = parse(input); diff --git a/packages/babel-helper-plugin-test-runner/esm.mjs b/packages/babel-helper-plugin-test-runner/esm.mjs index c2af2b80628b..674fc2b2c526 100644 --- a/packages/babel-helper-plugin-test-runner/esm.mjs +++ b/packages/babel-helper-plugin-test-runner/esm.mjs @@ -1,11 +1,12 @@ import _cjs from "./lib/index.js"; +const cjs = _cjs.default || _cjs; -const adapter = _cjs.default.bind(); +const adapter = cjs.bind(); // For backward compatibility with the CJS-only version, this makes // import _x from "@babel/helper-plugin-test-runner" // const x = _x.default // still work. -adapter.default = _cjs.default; +adapter.default = cjs; export default adapter; diff --git a/packages/babel-helper-simple-access/test/index.js b/packages/babel-helper-simple-access/test/index.js index 7514f1d7917b..39c88812cf18 100644 --- a/packages/babel-helper-simple-access/test/index.js +++ b/packages/babel-helper-simple-access/test/index.js @@ -7,7 +7,7 @@ const plugin = (_api, options) => { return { visitor: { Program(path) { - simplifyAccess.default( + (simplifyAccess.default || simplifyAccess)( path, new Set(bindingNames), includeUpdateExpression, diff --git a/packages/babel-highlight/test/index.js b/packages/babel-highlight/test/index.js index 7b94fdbf2270..ebe8662565c7 100644 --- a/packages/babel-highlight/test/index.js +++ b/packages/babel-highlight/test/index.js @@ -2,7 +2,7 @@ import chalk from "chalk"; import stripAnsi from "strip-ansi"; import _highlight, { shouldHighlight, getChalk } from "../lib/index.js"; -const highlight = _highlight.default; +const highlight = _highlight.default || _highlight; describe("@babel/highlight", function () { function stubColorSupport(supported) { diff --git a/packages/babel-parser/test/helpers/run-fixture-tests.js b/packages/babel-parser/test/helpers/run-fixture-tests.js index 9719ba02ad4a..83f8f306e7c0 100644 --- a/packages/babel-parser/test/helpers/run-fixture-tests.js +++ b/packages/babel-parser/test/helpers/run-fixture-tests.js @@ -10,7 +10,8 @@ import toContextualSyntaxError from "./to-contextual-syntax-error.js"; const { CI, OVERWRITE } = process.env; const { stringify, parse: JSONParse } = JSON; -const checkDuplicateNodes = _checkDuplicateNodes.default; +const checkDuplicateNodes = + _checkDuplicateNodes.default || _checkDuplicateNodes; const writeFileWithNewline = (path, string) => writeFileSync(path, `${string}\n`, "utf-8"); diff --git a/packages/babel-plugin-proposal-object-rest-spread/test/hasMoreThanOneBinding.skip-bundled.js b/packages/babel-plugin-proposal-object-rest-spread/test/hasMoreThanOneBinding.skip-bundled.js index fb727b32e0c3..0a65e4938c0c 100644 --- a/packages/babel-plugin-proposal-object-rest-spread/test/hasMoreThanOneBinding.skip-bundled.js +++ b/packages/babel-plugin-proposal-object-rest-spread/test/hasMoreThanOneBinding.skip-bundled.js @@ -2,7 +2,8 @@ import { parse } from "@babel/parser"; import _shouldStoreRHSInTemporaryVariable from "../lib/shouldStoreRHSInTemporaryVariable.js"; const shouldStoreRHSInTemporaryVariable = - _shouldStoreRHSInTemporaryVariable.default; + _shouldStoreRHSInTemporaryVariable.default || + _shouldStoreRHSInTemporaryVariable; function getFistObjectPattern(program) { return parse(program, { sourceType: "module" }).program.body[0] diff --git a/packages/babel-preset-env/test/get-option-specific-excludes.spec.js b/packages/babel-preset-env/test/get-option-specific-excludes.spec.js index 5b57a8e6ca2b..ddb4aadce490 100644 --- a/packages/babel-preset-env/test/get-option-specific-excludes.spec.js +++ b/packages/babel-preset-env/test/get-option-specific-excludes.spec.js @@ -1,5 +1,6 @@ import _getOptionSpecificExcludesFor from "../lib/get-option-specific-excludes.js"; -const getOptionSpecificExcludesFor = _getOptionSpecificExcludesFor.default; +const getOptionSpecificExcludesFor = + _getOptionSpecificExcludesFor.default || _getOptionSpecificExcludesFor; describe("defaults", () => { describe("getOptionSpecificExcludesFor", () => { diff --git a/packages/babel-preset-env/test/index.spec.js b/packages/babel-preset-env/test/index.spec.js index d8668426b292..67b44ca1d71a 100644 --- a/packages/babel-preset-env/test/index.spec.js +++ b/packages/babel-preset-env/test/index.spec.js @@ -7,10 +7,12 @@ import _removeRegeneratorEntryPlugin from "../lib/polyfills/regenerator.js"; import _pluginLegacyBabelPolyfill from "../lib/polyfills/babel-polyfill.js"; import _transformations from "../lib/module-transformations.js"; import _availablePlugins from "../lib/available-plugins.js"; -const removeRegeneratorEntryPlugin = _removeRegeneratorEntryPlugin.default; -const pluginLegacyBabelPolyfill = _pluginLegacyBabelPolyfill.default; -const transformations = _transformations.default; -const availablePlugins = _availablePlugins.default; +const removeRegeneratorEntryPlugin = + _removeRegeneratorEntryPlugin.default || _removeRegeneratorEntryPlugin; +const pluginLegacyBabelPolyfill = + _pluginLegacyBabelPolyfill.default || _pluginLegacyBabelPolyfill; +const transformations = _transformations.default || _transformations; +const availablePlugins = _availablePlugins.default || _availablePlugins; import { createRequire } from "module"; const require = createRequire(import.meta.url); diff --git a/packages/babel-preset-env/test/normalize-options.spec.js b/packages/babel-preset-env/test/normalize-options.spec.js index 6206a2f72cef..88067e57fd79 100644 --- a/packages/babel-preset-env/test/normalize-options.spec.js +++ b/packages/babel-preset-env/test/normalize-options.spec.js @@ -4,7 +4,7 @@ import _normalizeOptions, { validateUseBuiltInsOption, normalizePluginName, } from "../lib/normalize-options.js"; -const normalizeOptions = _normalizeOptions.default; +const normalizeOptions = _normalizeOptions.default || _normalizeOptions; describe("normalize-options", () => { describe("normalizeOptions", () => { diff --git a/packages/babel-preset-flow/test/normalize-options.spec.js b/packages/babel-preset-flow/test/normalize-options.spec.js index 39bf9f23842c..1e0bbc30e53b 100644 --- a/packages/babel-preset-flow/test/normalize-options.spec.js +++ b/packages/babel-preset-flow/test/normalize-options.spec.js @@ -1,5 +1,5 @@ import _normalizeOptions from "../lib/normalize-options.js"; -const normalizeOptions = _normalizeOptions.default; +const normalizeOptions = _normalizeOptions.default || _normalizeOptions; describe("normalize options", () => { (process.env.BABEL_8_BREAKING ? describe : describe.skip)("Babel 8", () => { diff --git a/packages/babel-preset-react/test/normalize-options.skip-bundled.js b/packages/babel-preset-react/test/normalize-options.skip-bundled.js index 7ed499820ca7..ee834c818bf2 100644 --- a/packages/babel-preset-react/test/normalize-options.skip-bundled.js +++ b/packages/babel-preset-react/test/normalize-options.skip-bundled.js @@ -1,5 +1,5 @@ import _normalizeOptions from "../lib/normalize-options.js"; -const normalizeOptions = _normalizeOptions.default; +const normalizeOptions = _normalizeOptions.default || _normalizeOptions; describe("normalize options", () => { (process.env.BABEL_8_BREAKING ? describe : describe.skip)("Babel 8", () => { diff --git a/packages/babel-preset-typescript/test/normalize-options.skip-bundled.js b/packages/babel-preset-typescript/test/normalize-options.skip-bundled.js index 170fae264259..621ae4453cee 100644 --- a/packages/babel-preset-typescript/test/normalize-options.skip-bundled.js +++ b/packages/babel-preset-typescript/test/normalize-options.skip-bundled.js @@ -1,5 +1,5 @@ import _normalizeOptions from "../lib/normalize-options.js"; -const normalizeOptions = _normalizeOptions.default; +const normalizeOptions = _normalizeOptions.default || _normalizeOptions; describe("normalize options", () => { (process.env.BABEL_8_BREAKING ? describe : describe.skip)("Babel 8", () => { diff --git a/packages/babel-template/test/index.js b/packages/babel-template/test/index.js index a26b9fc00f60..4a7f97b164c1 100644 --- a/packages/babel-template/test/index.js +++ b/packages/babel-template/test/index.js @@ -2,8 +2,8 @@ import * as t from "@babel/types"; import _generator from "../../babel-generator/lib/index.js"; import _template from "../lib/index.js"; -const generator = _generator.default; -const template = _template.default; +const generator = _generator.default || _generator; +const template = _template.default || _template; const comments = "// Sum two numbers\nconst add = (a, b) => a + b;"; diff --git a/packages/babel-traverse/test/ancestry.js b/packages/babel-traverse/test/ancestry.js index 72f1380020e0..baea978f9ac0 100644 --- a/packages/babel-traverse/test/ancestry.js +++ b/packages/babel-traverse/test/ancestry.js @@ -1,7 +1,7 @@ import { parse } from "@babel/parser"; import _traverse from "../lib/index.js"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; describe("path/ancestry", function () { describe("isAncestor", function () { diff --git a/packages/babel-traverse/test/arrow-transform.js b/packages/babel-traverse/test/arrow-transform.js index 7e36e0c8375b..54e006b2a2e2 100644 --- a/packages/babel-traverse/test/arrow-transform.js +++ b/packages/babel-traverse/test/arrow-transform.js @@ -3,7 +3,7 @@ import { parse } from "@babel/parser"; import * as t from "@babel/types"; import _generate from "@babel/generator"; -const generate = _generate.default; +const generate = _generate.default || _generate; function assertConversion( input, diff --git a/packages/babel-traverse/test/conversion.js b/packages/babel-traverse/test/conversion.js index 54bb8d4a00ca..ab0ad5660151 100644 --- a/packages/babel-traverse/test/conversion.js +++ b/packages/babel-traverse/test/conversion.js @@ -3,8 +3,8 @@ import * as t from "@babel/types"; import _traverse from "../lib/index.js"; import _generate from "@babel/generator"; -const traverse = _traverse.default; -const generate = _generate.default; +const traverse = _traverse.default || _traverse; +const generate = _generate.default || _generate; function getPath(code) { const ast = parse(code); diff --git a/packages/babel-traverse/test/evaluation.js b/packages/babel-traverse/test/evaluation.js index ba3e99a7bfed..ab0fb464136f 100644 --- a/packages/babel-traverse/test/evaluation.js +++ b/packages/babel-traverse/test/evaluation.js @@ -1,7 +1,7 @@ import { parse } from "@babel/parser"; import _traverse from "../lib/index.js"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; function getPath(code) { const ast = parse(code); diff --git a/packages/babel-traverse/test/family.js b/packages/babel-traverse/test/family.js index a4bb2050623d..e823a987d3f9 100644 --- a/packages/babel-traverse/test/family.js +++ b/packages/babel-traverse/test/family.js @@ -2,7 +2,7 @@ import { parse } from "@babel/parser"; import * as t from "@babel/types"; import _traverse from "../lib/index.js"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; describe("path/family", function () { describe("getBindingIdentifiers", function () { diff --git a/packages/babel-traverse/test/inference.js b/packages/babel-traverse/test/inference.js index fa2af2045877..71025d5ea699 100644 --- a/packages/babel-traverse/test/inference.js +++ b/packages/babel-traverse/test/inference.js @@ -2,7 +2,7 @@ import { parse } from "@babel/parser"; import * as t from "@babel/types"; import _traverse from "../lib/index.js"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; function getPath(code) { const ast = parse(code, { plugins: ["flow"] }); diff --git a/packages/babel-traverse/test/introspection.js b/packages/babel-traverse/test/introspection.js index eb020035cef1..54f1df8b1f89 100644 --- a/packages/babel-traverse/test/introspection.js +++ b/packages/babel-traverse/test/introspection.js @@ -1,7 +1,7 @@ import { parse } from "@babel/parser"; import _traverse from "../lib/index.js"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; function getPath(code, options = { sourceType: "script" }) { const ast = parse(code, options); diff --git a/packages/babel-traverse/test/modification.js b/packages/babel-traverse/test/modification.js index 3e86c04952d8..6c3419951422 100644 --- a/packages/babel-traverse/test/modification.js +++ b/packages/babel-traverse/test/modification.js @@ -3,8 +3,8 @@ import * as t from "@babel/types"; import _traverse from "../lib/index.js"; import _generate from "@babel/generator"; -const traverse = _traverse.default; -const generate = _generate.default; +const traverse = _traverse.default || _traverse; +const generate = _generate.default || _generate; function getPath(code, parserOpts) { const ast = parse(code, parserOpts); diff --git a/packages/babel-traverse/test/path/isPure.js b/packages/babel-traverse/test/path/isPure.js index 70c67f4f6f0c..625ab863af66 100644 --- a/packages/babel-traverse/test/path/isPure.js +++ b/packages/babel-traverse/test/path/isPure.js @@ -1,7 +1,7 @@ import { parse } from "@babel/parser"; import _traverse from "../../lib/index.js"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; function getPath(code) { const ast = parse(code, { diff --git a/packages/babel-traverse/test/removal.js b/packages/babel-traverse/test/removal.js index 9f02d17f5ec8..210304c736e9 100644 --- a/packages/babel-traverse/test/removal.js +++ b/packages/babel-traverse/test/removal.js @@ -2,8 +2,8 @@ import { parse } from "@babel/parser"; import _traverse from "../lib/index.js"; import _generate from "@babel/generator"; -const traverse = _traverse.default; -const generate = _generate.default; +const traverse = _traverse.default || _traverse; +const generate = _generate.default || _generate; function getPath(code) { const ast = parse(code); diff --git a/packages/babel-traverse/test/replacement.js b/packages/babel-traverse/test/replacement.js index 378cdf27901e..7b02f0c9bce1 100644 --- a/packages/babel-traverse/test/replacement.js +++ b/packages/babel-traverse/test/replacement.js @@ -3,8 +3,8 @@ import * as t from "@babel/types"; import _traverse from "../lib/index.js"; import _generate from "@babel/generator"; -const traverse = _traverse.default; -const generate = _generate.default; +const traverse = _traverse.default || _traverse; +const generate = _generate.default || _generate; describe("path/replacement", function () { describe("replaceWith", function () { diff --git a/packages/babel-traverse/test/scope.js b/packages/babel-traverse/test/scope.js index de9d612aa577..7c229183dd93 100644 --- a/packages/babel-traverse/test/scope.js +++ b/packages/babel-traverse/test/scope.js @@ -2,7 +2,7 @@ import { parse } from "@babel/parser"; import * as t from "@babel/types"; import _traverse, { NodePath } from "../lib/index.js"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; function getPath(code, options) { const ast = diff --git a/packages/babel-traverse/test/traverse.js b/packages/babel-traverse/test/traverse.js index 3aa0c2e64f2d..62545f54c689 100644 --- a/packages/babel-traverse/test/traverse.js +++ b/packages/babel-traverse/test/traverse.js @@ -2,7 +2,7 @@ import { parse } from "@babel/parser"; import * as t from "@babel/types"; import _traverse from "../lib/index.js"; -const traverse = _traverse.default; +const traverse = _traverse.default || _traverse; describe("traverse", function () { const code = ` diff --git a/packages/babel-types/test/converters.js b/packages/babel-types/test/converters.js index 751d4867d120..f616c749974b 100644 --- a/packages/babel-types/test/converters.js +++ b/packages/babel-types/test/converters.js @@ -2,7 +2,7 @@ import * as t from "../lib/index.js"; import { parse } from "@babel/parser"; import _generate from "@babel/generator"; -const generate = _generate.default; +const generate = _generate.default || _generate; function parseCode(string) { return parse(string, { diff --git a/yarn.lock b/yarn.lock index 25dcf7d8a805..82fbd9ba32ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -330,7 +330,10 @@ __metadata: "@babel/helper-transform-fixture-test-runner": "workspace:^" "@babel/helpers": "workspace:^" "@babel/parser": "workspace:^" + "@babel/plugin-syntax-flow": "workspace:^" + "@babel/plugin-transform-flow-strip-types": "workspace:^" "@babel/plugin-transform-modules-commonjs": "workspace:^" + "@babel/preset-env": "workspace:^" "@babel/template": "workspace:^" "@babel/traverse": "workspace:^" "@babel/types": "workspace:^"