@babel/core
Advanced tools
Comparing version 7.26.0 to 7.26.7
@@ -228,3 +228,5 @@ "use strict"; | ||
case ".mjs": | ||
case ".ts": | ||
case ".cts": | ||
case ".mts": | ||
return readConfigCode(filepath, { | ||
@@ -231,0 +233,0 @@ envName, |
@@ -81,3 +81,10 @@ "use strict"; | ||
}()); | ||
const SUPPORTED_EXTENSIONS = new Set([".js", ".mjs", ".cjs", ".cts"]); | ||
const SUPPORTED_EXTENSIONS = { | ||
".js": "unknown", | ||
".mjs": "esm", | ||
".cjs": "cjs", | ||
".ts": "unknown", | ||
".mts": "esm", | ||
".cts": "cjs" | ||
}; | ||
const asyncModules = new Set(); | ||
@@ -87,19 +94,21 @@ function* loadCodeDefault(filepath, loader, esmError, tlaError) { | ||
let async; | ||
let ext = _path().extname(filepath); | ||
if (!SUPPORTED_EXTENSIONS.has(ext)) ext = ".js"; | ||
const pattern = `${loader} ${ext}`; | ||
const ext = _path().extname(filepath); | ||
const isTS = ext === ".ts" || ext === ".cts" || ext === ".mts"; | ||
const type = SUPPORTED_EXTENSIONS[hasOwnProperty.call(SUPPORTED_EXTENSIONS, ext) ? ext : ".js"]; | ||
const pattern = `${loader} ${type}`; | ||
switch (pattern) { | ||
case "require .cjs": | ||
case "auto .cjs": | ||
{ | ||
case "require cjs": | ||
case "auto cjs": | ||
if (isTS) { | ||
return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath)); | ||
} else { | ||
return loadCjsDefault(filepath, arguments[2]); | ||
} | ||
case "require .cts": | ||
case "auto .cts": | ||
return loadCtsDefault(filepath); | ||
case "auto .js": | ||
case "require .js": | ||
case "require .mjs": | ||
case "auto unknown": | ||
case "require unknown": | ||
case "require esm": | ||
try { | ||
{ | ||
if (isTS) { | ||
return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath)); | ||
} else { | ||
return loadCjsDefault(filepath, arguments[2]); | ||
@@ -114,9 +123,10 @@ } | ||
} | ||
} else if (e.code === "ERR_REQUIRE_ESM" || ext === ".mjs") {} else { | ||
} else if (e.code === "ERR_REQUIRE_ESM" || type === "esm") {} else { | ||
throw e; | ||
} | ||
} | ||
case "auto .mjs": | ||
case "auto esm": | ||
if ((_async2 = async) != null ? _async2 : async = yield* (0, _async3.isAsync)()) { | ||
return (yield* (0, _async3.waitFor)(loadMjsFromPath(filepath))).default; | ||
const promise = isTS ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath)) : loadMjsFromPath(filepath); | ||
return (yield* (0, _async3.waitFor)(promise)).default; | ||
} | ||
@@ -128,47 +138,49 @@ throw new _configError.default(esmError, filepath); | ||
} | ||
function loadCtsDefault(filepath) { | ||
const ext = ".cts"; | ||
const hasTsSupport = !!(require.extensions[".ts"] || require.extensions[".cts"] || require.extensions[".mts"]); | ||
let handler; | ||
if (!hasTsSupport) { | ||
const opts = { | ||
babelrc: false, | ||
configFile: false, | ||
sourceType: "unambiguous", | ||
sourceMaps: "inline", | ||
sourceFileName: _path().basename(filepath), | ||
presets: [[getTSPreset(filepath), Object.assign({ | ||
onlyRemoveTypeImports: true, | ||
optimizeConstEnums: true | ||
}, { | ||
allowDeclareFields: true | ||
})]] | ||
}; | ||
handler = function (m, filename) { | ||
if (handler && filename.endsWith(ext)) { | ||
try { | ||
return m._compile((0, _transformFile.transformFileSync)(filename, Object.assign({}, opts, { | ||
filename | ||
})).code, filename); | ||
} catch (error) { | ||
if (!hasTsSupport) { | ||
const packageJson = require("@babel/preset-typescript/package.json"); | ||
if (_semver().lt(packageJson.version, "7.21.4")) { | ||
console.error("`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`."); | ||
} | ||
} | ||
throw error; | ||
function ensureTsSupport(filepath, ext, callback) { | ||
if (require.extensions[".ts"] || require.extensions[".cts"] || require.extensions[".mts"]) { | ||
return callback(); | ||
} | ||
if (ext !== ".cts") { | ||
throw new _configError.default(`\ | ||
You are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either: | ||
- Use a .cts config file | ||
- Update to Node.js 23.6.0, which has native TypeScript support | ||
- Install ts-node to transpile ${ext} files on the fly\ | ||
`, filepath); | ||
} | ||
const opts = { | ||
babelrc: false, | ||
configFile: false, | ||
sourceType: "unambiguous", | ||
sourceMaps: "inline", | ||
sourceFileName: _path().basename(filepath), | ||
presets: [[getTSPreset(filepath), Object.assign({ | ||
onlyRemoveTypeImports: true, | ||
optimizeConstEnums: true | ||
}, { | ||
allowDeclareFields: true | ||
})]] | ||
}; | ||
let handler = function (m, filename) { | ||
if (handler && filename.endsWith(".cts")) { | ||
try { | ||
return m._compile((0, _transformFile.transformFileSync)(filename, Object.assign({}, opts, { | ||
filename | ||
})).code, filename); | ||
} catch (error) { | ||
const packageJson = require("@babel/preset-typescript/package.json"); | ||
if (_semver().lt(packageJson.version, "7.21.4")) { | ||
console.error("`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`."); | ||
} | ||
throw error; | ||
} | ||
return require.extensions[".js"](m, filename); | ||
}; | ||
require.extensions[ext] = handler; | ||
} | ||
} | ||
return require.extensions[".js"](m, filename); | ||
}; | ||
require.extensions[ext] = handler; | ||
try { | ||
return loadCjsDefault(filepath); | ||
return callback(); | ||
} finally { | ||
if (!hasTsSupport) { | ||
if (require.extensions[ext] === handler) delete require.extensions[ext]; | ||
handler = undefined; | ||
} | ||
if (require.extensions[ext] === handler) delete require.extensions[ext]; | ||
handler = undefined; | ||
} | ||
@@ -175,0 +187,0 @@ } |
@@ -216,3 +216,3 @@ "use strict"; | ||
; | ||
const version = exports.version = "7.26.0"; | ||
const version = exports.version = "7.26.7"; | ||
const resolvePlugin = (name, dirname) => resolvers.resolvePlugin(name, dirname, false).filepath; | ||
@@ -219,0 +219,0 @@ exports.resolvePlugin = resolvePlugin; |
{ | ||
"name": "@babel/core", | ||
"version": "7.26.0", | ||
"version": "7.26.7", | ||
"description": "Babel compiler core.", | ||
@@ -50,11 +50,11 @@ "main": "./lib/index.js", | ||
"@ampproject/remapping": "^2.2.0", | ||
"@babel/code-frame": "^7.26.0", | ||
"@babel/generator": "^7.26.0", | ||
"@babel/helper-compilation-targets": "^7.25.9", | ||
"@babel/code-frame": "^7.26.2", | ||
"@babel/generator": "^7.26.5", | ||
"@babel/helper-compilation-targets": "^7.26.5", | ||
"@babel/helper-module-transforms": "^7.26.0", | ||
"@babel/helpers": "^7.26.0", | ||
"@babel/parser": "^7.26.0", | ||
"@babel/helpers": "^7.26.7", | ||
"@babel/parser": "^7.26.7", | ||
"@babel/template": "^7.25.9", | ||
"@babel/traverse": "^7.25.9", | ||
"@babel/types": "^7.26.0", | ||
"@babel/traverse": "^7.26.7", | ||
"@babel/types": "^7.26.7", | ||
"convert-source-map": "^2.0.0", | ||
@@ -67,7 +67,7 @@ "debug": "^4.1.0", | ||
"devDependencies": { | ||
"@babel/helper-transform-fixture-test-runner": "^7.26.0", | ||
"@babel/helper-transform-fixture-test-runner": "^7.26.5", | ||
"@babel/plugin-syntax-flow": "^7.26.0", | ||
"@babel/plugin-transform-flow-strip-types": "^7.25.9", | ||
"@babel/plugin-transform-modules-commonjs": "^7.25.9", | ||
"@babel/preset-env": "^7.26.0", | ||
"@babel/plugin-transform-flow-strip-types": "^7.26.5", | ||
"@babel/plugin-transform-modules-commonjs": "^7.26.3", | ||
"@babel/preset-env": "^7.26.7", | ||
"@babel/preset-typescript": "^7.26.0", | ||
@@ -74,0 +74,0 @@ "@jridgewell/trace-mapping": "^0.3.25", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
795265
6940
+ Added@babel/compat-data@7.26.5(transitive)
+ Added@babel/generator@7.26.5(transitive)
+ Added@babel/parser@7.26.7(transitive)
+ Added@babel/template@7.25.9(transitive)
+ Added@babel/traverse@7.26.7(transitive)
+ Added@babel/types@7.26.7(transitive)
- Removed@babel/compat-data@7.26.8(transitive)
- Removed@babel/generator@7.26.8(transitive)
- Removed@babel/parser@7.26.8(transitive)
- Removed@babel/template@7.26.8(transitive)
- Removed@babel/traverse@7.26.8(transitive)
- Removed@babel/types@7.26.8(transitive)
Updated@babel/code-frame@^7.26.2
Updated@babel/generator@^7.26.5
Updated@babel/helpers@^7.26.7
Updated@babel/parser@^7.26.7
Updated@babel/traverse@^7.26.7
Updated@babel/types@^7.26.7