mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 12:21:58 +00:00
Don't track variable declaration or import binding names in TS namespace transform. Babel does, but it appears to be wrong. It's illegal to have a `var`/`let`/`const` declaration or import in same scope as a TS namespace declaration with same binding. https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBAQTgMyhEcDkUCmBDAYxkwG4AoAOzxBwGcxCdE4BvAXzLIIgtvgCE4AXjgBGclRr1GcQSzJxFcADY54AD3Icyq+AGFhYidToMCTA-KUq1cTWW0A3PFDgARQ+Monp596wUlXTstMiA
97 lines
4.3 KiB
Rust
97 lines
4.3 KiB
Rust
pub(crate) const PLUGINS: &[&str] = &[
|
||
"babel-preset-env",
|
||
// // ES2024
|
||
// "babel-plugin-transform-unicode-sets-regex",
|
||
// // ES2022
|
||
// "babel-plugin-transform-class-properties",
|
||
// "babel-plugin-transform-class-static-block",
|
||
// "babel-plugin-transform-private-methods",
|
||
// "babel-plugin-transform-private-property-in-object",
|
||
// // [Syntax] "babel-plugin-transform-syntax-top-level-await",
|
||
// // ES2021
|
||
// "babel-plugin-transform-logical-assignment-operators",
|
||
// "babel-plugin-transform-numeric-separator",
|
||
// // ES2020
|
||
// "babel-plugin-transform-export-namespace-from",
|
||
// "babel-plugin-transform-dynamic-import",
|
||
// "babel-plugin-transform-nullish-coalescing-operator",
|
||
// "babel-plugin-transform-optional-chaining",
|
||
// // [Syntax] "babel-plugin-transform-syntax-bigint",
|
||
// // [Syntax] "babel-plugin-transform-syntax-dynamic-import",
|
||
// // [Syntax] "babel-plugin-transform-syntax-import-meta",
|
||
// // ES2019
|
||
// "babel-plugin-transform-optional-catch-binding",
|
||
// "babel-plugin-transform-json-strings",
|
||
// // ES2018
|
||
// "babel-plugin-transform-async-generator-functions",
|
||
// "babel-plugin-transform-object-rest-spread",
|
||
// // [Regex] "babel-plugin-transform-unicode-property-regex",
|
||
// "babel-plugin-transform-dotall-regex",
|
||
// // [Regex] "babel-plugin-transform-named-capturing-groups-regex",
|
||
// // ES2017
|
||
// "babel-plugin-transform-async-to-generator",
|
||
// // ES2016
|
||
// "babel-plugin-transform-exponentiation-operator",
|
||
// // ES2015
|
||
"babel-plugin-transform-arrow-functions",
|
||
// "babel-plugin-transform-function-name",
|
||
// "babel-plugin-transform-shorthand-properties",
|
||
// "babel-plugin-transform-sticky-regex",
|
||
// "babel-plugin-transform-unicode-regex",
|
||
// "babel-plugin-transform-template-literals",
|
||
// "babel-plugin-transform-duplicate-keys",
|
||
// "babel-plugin-transform-instanceof",
|
||
// "babel-plugin-transform-new-target",
|
||
// // ES3
|
||
// "babel-plugin-transform-property-literals",
|
||
// TypeScript
|
||
"babel-preset-typescript",
|
||
"babel-plugin-transform-typescript",
|
||
// React
|
||
"babel-preset-react",
|
||
"babel-plugin-transform-react-jsx",
|
||
"babel-plugin-transform-react-display-name",
|
||
"babel-plugin-transform-react-jsx-self",
|
||
"babel-plugin-transform-react-jsx-source",
|
||
"babel-plugin-transform-react-jsx-development",
|
||
// // Proposal
|
||
// "babel-plugin-proposal-decorators",
|
||
];
|
||
|
||
pub(crate) const PLUGINS_NOT_SUPPORTED_YET: &[&str] = &[
|
||
"proposal-decorators",
|
||
"transform-class-properties",
|
||
"transform-classes",
|
||
"transform-destructuring",
|
||
"transform-modules-commonjs",
|
||
"transform-object-rest-spread",
|
||
"transform-optional-chaining",
|
||
"transform-parameters",
|
||
"transform-private-methods",
|
||
"transform-property-literals",
|
||
"transform-react-constant-elements",
|
||
];
|
||
|
||
pub(crate) const SKIP_TESTS: &[&str] = &[
|
||
// Shouldn't report in transformer
|
||
"typescript/test/fixtures/node-extensions/type-assertion-in-cts/input.cts",
|
||
"typescript/test/fixtures/node-extensions/type-assertion-in-mts/input.mts",
|
||
"typescript/test/fixtures/node-extensions/type-param-arrow-in-cts/input.mts",
|
||
"typescript/test/fixtures/node-extensions/type-param-arrow-in-mts/input.mts",
|
||
"typescript/test/fixtures/node-extensions/with-in-mts/input.mts",
|
||
// Report error for deprecate option or oxc doesn’t follow error message
|
||
"typescript/test/fixtures/opts/allowDeclareFields/input.ts",
|
||
"react-jsx/test/fixtures/react-automatic/should-throw-when-filter-is-specified/input.js",
|
||
"react-jsx-development/test/fixtures/cross-platform/source-and-self-defined/input.js",
|
||
// Not standard JavaScript or TypeScript syntax
|
||
"typescript/test/fixtures/exports/export-type-star-from/input.ts",
|
||
// The output is valid and semantically correct
|
||
// but does not match Babel's expected output
|
||
"typescript/test/fixtures/namespace/canonical/input.ts",
|
||
"typescript/test/fixtures/namespace/nested-shorthand-export/input.ts",
|
||
"react-jsx-development/test/fixtures/cross-platform/self-inside-arrow/input.mjs",
|
||
// Babel outputs is not correct
|
||
"typescript/test/fixtures/namespace/clobber-import/input.ts",
|
||
"typescript/test/fixtures/namespace/namespace-nested-module/input.ts",
|
||
"typescript/test/fixtures/namespace/nested-destructuring/input.ts",
|
||
];
|