mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
agent/fix-react-compiler-numeric-object-keys
410 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
db446518ca |
fix(napi): disable reuseWorker in browser bindings (#25640)
Fixes #25610 AI assistance: Codex was used to implement this change. |
||
|
|
b6f1458dec |
release(crates): oxc v0.144.0 (#25474)
### 💥 BREAKING CHANGES - |
||
|
|
b91dc3a1f1 |
chore(deps): update napi (#25457)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update | |---|---|---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.8.3` → `3.8.5`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.8.3/3.8.5) |  |  |  |  | pnpm.catalog.default | patch | | [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.12.0` → `3.12.1` |  |  |  |  | workspace.dependencies | patch | | [napi-build](https://redirect.github.com/napi-rs/napi-rs) | `2.4.0` → `2.4.1` |  |  |  |  | workspace.dependencies | patch | | [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.6.2` → `3.6.3` |  |  |  |  | workspace.dependencies | patch | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.8.5`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.4...a5b5f277ab56e7e7e903b392b15c79da7a6520ce) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.4...@napi-rs/cli@3.8.5) ### [`v3.8.4`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.3...@napi-rs/cli@3.8.4) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.3...@napi-rs/cli@3.8.4) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron <cclark@cloudflare.com> |
||
|
|
d0b8d6ff22 |
chore(deps): update dependency @napi-rs/cli to v3.8.3 (#25434)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.8.2` → `3.8.3`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.8.2/3.8.3) |  |  |  |  | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.8.3`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.2...@napi-rs/cli@3.8.3) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.2...@napi-rs/cli@3.8.3) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMi4wIiwidXBkYXRlZEluVmVyIjoiNDQuMTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
45a17c25d1 |
release(crates): oxc v0.143.0 (#25250)
### 💥 BREAKING CHANGES - |
||
|
|
b937e3e2f1 |
chore(deps): update napi (#25019)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update | |---|---|---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.7.4` → `3.8.2`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.7.4/3.8.2) |  |  |  |  | pnpm.catalog.default | minor | | [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.11.0` → `3.12.0` |  |  |  |  | workspace.dependencies | minor | | [napi-build](https://redirect.github.com/napi-rs/napi-rs) | `2.3.2` → `2.4.0` |  |  |  |  | workspace.dependencies | minor | | [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.6.0` → `3.6.2` |  |  |  |  | workspace.dependencies | patch | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.8.2`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.1...@napi-rs/cli@3.8.2) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.1...@napi-rs/cli@3.8.2) ### [`v3.8.1`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.0...@napi-rs/cli@3.8.1) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.8.0...@napi-rs/cli@3.8.1) ### [`v3.8.0`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.4...@napi-rs/cli@3.8.0) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.4...@napi-rs/cli@3.8.0) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODAuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron <cameron.clark@hey.com> |
||
|
|
fc702c1fa9 |
release(crates): oxc v0.142.0 (#24977)
### 💥 BREAKING CHANGES - |
||
|
|
14533a3dc1 |
release(crates): oxc v0.141.0 (#24714)
### 💥 BREAKING CHANGES - |
||
|
|
8e0ed2ebb9 |
release(crates): oxc v0.140.0 (#24453)
### 🚀 Features - |
||
|
|
69b2dfc181 |
release(crates): oxc v0.139.0 (#24218)
### 🚀 Features - |
||
|
|
8bf69a3076 |
release(crates): oxc v0.138.0 (#23934)
### 💥 BREAKING CHANGES - |
||
|
|
6d56d57535 |
release(crates): oxc v0.137.0 (#23591)
### 💥 BREAKING CHANGES - |
||
|
|
28d36c69c1 |
refactor(napi/transform)!: remove the React Compiler option (#23590)
## Summary Removes React Compiler from the `oxc-transform` napi binding entirely. It was previously exposed as a `reactCompiler` transform option (added in #22942, shipped in 0.135.0 / 0.136.0). **Why not feature-gate it instead?** Gating React Compiler in the binding can't produce a consistent `index.d.ts`: - Keep the option types unconditionally → the published `.d.ts` advertises a `reactCompiler` option that a default (feature-off) build silently ignores. - Gate the type surface too → CI's `build-test` (which would enable the feature) regenerates a `.d.ts` that no longer matches the checked-in lean one, breaking `git diff --exit-code`. Removing it from the binding sidesteps both. React Compiler stays available to the Rust `oxc_transformer` crate behind its own `react_compiler` feature — only the napi binding loses it. ## Changes - Drop the `reactCompiler` option and the `ReactCompilerOptions` / `ReactCompilerGating` / `ReactCompilerDynamicGating` types. - Remove the `oxc_react_compiler` dependency and stop enabling `oxc`'s `react_compiler` feature. - Delete `src/react_compiler.rs` and `test/reactCompiler.test.ts`. - Regenerate `index.d.ts` (drops the three interfaces + the field; `index.js` is unchanged — they were type-only). ## Breaking change `oxc-transform` no longer accepts the `reactCompiler` option. It shipped in 0.135.0 and 0.136.0. ## Verification - `cargo check` + `cargo clippy --all-targets`: clean. - `cargo shear`: no issues; `Cargo.lock` drops only the `oxc_transform_napi → oxc_react_compiler` edge. - No remaining `reactCompiler` / `ReactCompilerOptions` references anywhere else in the repo. - `pnpm build-test` + `pnpm test`: 53/53 pass (the React Compiler test is removed). 🤖 Generated with [Claude Code](https://claude.com/claude-code) |
||
|
|
827248a7fb |
release(crates): oxc v0.136.0 (#23443)
### 💥 BREAKING CHANGES - |
||
|
|
7a24911846 |
perf(codegen)!: borrow sourcemaps from codegen (#23422)
Summary: - Upgrade oxc_sourcemap to 8.0.1. - Return borrowed SourceMap from CodegenReturn. - Support no-sourcemap feature builds used by benchmarks. AI-assisted: yes |
||
|
|
e745892d4c |
chore(deps): update napi (#23394)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update | |---|---|---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.7.1` → `3.7.2`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.7.1/3.7.2) |  |  |  |  | pnpm.catalog.default | patch | | [napi](https://crates.io/crates/napi) | `3.9.1` → `3.9.2` |  |  |  |  | workspace.dependencies | patch | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.7.2`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.1...@napi-rs/cli@3.7.2) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.7.1...@napi-rs/cli@3.7.2) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMTkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIxOS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
c782419c3e |
refactor(transformer): order transform options by evaluation order (#23241)
Reorders the option struct fields in `oxc_transformer` and the napi transform binding to match the order their transforms are evaluated, and documents that order on each struct. Behavior-neutral; the only externally visible change is field order and docs in the generated `index.d.ts`. - **`TransformOptions`** (`oxc_transformer`): `react_compiler` (separate pass before the traversal) → `typescript` → `decorator` → `plugins` → `jsx` → `env`, with `helper_loader` last (not a transform). Previously `plugins` sat after `env` and `react_compiler` was last despite running first. - **`EnvOptions`**: was ascending `es2015`→`es2026`; now `module` (consumed by the TypeScript transform), then `es2026` down to `es2015`, then `regexp` last. - **`ES2020Options`**: `optional_chaining` moved next to `nullish_coalescing_operator`, matching their `enter_expression` order. - **napi `TransformOptions`**: follows the full compiler pipeline — `lang`/`sourceType` (parse) → `assumptions` → `reactCompiler` → `typescript` → `decorator` → `plugins` → `jsx` → `target` → `helpers` → `inject` → `define` → `sourcemap` (codegen). Two things this surfaced: `inject` runs **before** `define` (the struct listed them reversed), and `sourcemap` is a codegen option so it belongs at the end. `index.d.ts` regenerated. The canonical order is `TransformerImpl`'s field order in `lib.rs` (and `CompilerInterface::compile` for the napi pipeline stages); a note on `TransformerImpl` now reminds maintainers to keep `TransformOptions` in sync. Verified: `cargo check`/`clippy --all-features --all-targets` (CI profile), `cargo test -p oxc_transformer`, napi vitest 62/62, transform conformance with zero snapshot diffs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) |
||
|
|
777f02ae10 |
refactor(diagnostics)!: return a Diagnostics type instead of Vec<OxcDiagnostic> (#23217)
## Summary Introduces `oxc_diagnostics::Diagnostics` — a `Vec<OxcDiagnostic>` newtype that knows the difference between errors and warnings — and makes it the standard diagnostics return value across oxc. - **New type**: `Diagnostics` with `has_errors()`, `has_warnings()`, `errors()`, `warnings()`, plus `Vec`-like ergonomics (Deref, `IntoIterator`, `Extend`, `From`/`Into<Vec>`) so most call sites are unchanged. - **Return types**: `ParserReturn`, `SemanticBuilderReturn`, `IsolatedDeclarationsReturn`, the React Compiler `TransformResult`/`LintResult`, and `TransformerReturn` now expose `diagnostics: Diagnostics` instead of `errors: Vec<OxcDiagnostic>` (the React Compiler's separate `errors`/`warnings` are merged into one severity-tagged list). - **Behaviour**: a React Compiler **error** now stops the transform (no output), while **warnings** flow through and the transform continues. `compile()` aborts codegen only when `diagnostics.has_errors()` — warnings alone no longer abort (previously any diagnostic did). ## Breaking change Consumers reading `*.errors` on these return values must read `*.diagnostics`. React Compiler consumers that read `.errors`/`.warnings` separately should use `diagnostics.has_errors()` / `diagnostics.errors()` / `diagnostics.warnings()`. Parser/semantic/isolated-declarations fatality is otherwise unchanged. Builds on the React Compiler transform feature (#23201). 🤖 Generated with [Claude Code](https://claude.com/claude-code) |
||
|
|
ec266bb733 |
feat(transformer): run React Compiler as a feature-gated transform pass (#23201)
## Summary Exposes the React Compiler from `oxc_transformer` behind a Cargo feature so callers no longer need a separate `oxc_react_compiler::transform` + scoping-rebuild step before transforming. - **`oxc_transformer`**: new `react_compiler` Cargo feature (off by default) + `TransformOptions::react_compiler` field. When set, `Transformer::build_with_scoping` runs the React Compiler first (via a private `run_react_compiler` method), replacing the program and rebuilding scoping for the downstream transforms. - **Opt-in**: the feature is **not** enabled by `oxc_transformer`'s defaults, nor by `oxc`'s `transformer`/`full` features — enabling the transformer does not pull the heavy `oxc_react_compiler` dependency. It is a separate `react_compiler` feature on `oxc` (which implies `transformer`); the napi transform binding opts in explicitly. - **Dedupe**: removes the inline React-Compiler orchestration (and the `react_compiler_options()` hook) from `oxc`'s `CompilerInterface` and the napi transform binding; both now drive it through `TransformOptions::react_compiler`. - **Diagnostics**: the compiler's errors and warnings are merged into `TransformerReturn::errors` (each keeps its severity; downstream filters). `compile()` reports them but no longer aborts codegen — the transformer always leaves a valid program, matching the documented "code may still be available even if there are errors" behaviour. - **Links**: updates the React Compiler references to the merged upstream location (`react/react/tree/main/compiler`). ## Notes Transform/codegen output is unchanged when the feature is off (the field defaults to `None` everywhere). The diagnostics behaviour change (no codegen abort) is conformance-safe — the transform-conformance harness keys off reported diagnostics, not printed output. 🤖 Generated with [Claude Code](https://claude.com/claude-code) |
||
|
|
bb0ed44541 |
feat(transformer)!: disable styled-components transpileTemplateLiterals by default (#23171)
## Summary Closes #13398. The styled-components transform's `transpileTemplateLiterals` option rewrites tagged template literals into the array-call form: ```js // in styled.div`width: 100%;` // out — transpileTemplateLiterals: true styled.div(["width: 100%;"]) ``` This form is only more compact when template literals are *also* down-levelled to ES5 — which is why `babel-plugin-styled-components` enables it by default, to pre-empt Babel's verbose `_taggedTemplateLiteral` output. Oxc does not down-level template literals below ES6, so the array-call form is strictly *larger* than leaving the tagged template untouched. This PR flips the default to `false`, as agreed with @Dunqing in #13398. ## Changes - `StyledComponentsOptions::transpile_template_literals` now defaults to `false` (both the `serde` field default and the `Default` impl), with docs explaining why. - napi: `transpileTemplateLiterals` is documented `@default false` (`transformer.rs` + `index.d.ts`), and the styled-components napi test snapshot now reflects the non-transpiled default output. - Conformance fixtures that relied on the old default and whose reference output is transpiled now pin `transpileTemplateLiterals: true`, so they keep matching `babel-plugin-styled-components`' reference output. The conformance snapshot is unchanged — `plugin-styled-components` stays at 25/40. ## Breaking change `transpileTemplateLiterals` now defaults to `false`. Pass `transpileTemplateLiterals: true` to restore the previous behavior. 🤖 Generated with [Claude Code](https://claude.com/claude-code) |
||
|
|
e9b8fd595c |
release(crates): oxc v0.135.0 (#23117)
### 💥 BREAKING CHANGES - |
||
|
|
b846ab2d9a |
feat(react_compiler): integrate the Rust port of the React Compiler (#22942)
Closes https://github.com/oxc-project/oxc/issues/10048 Integrates the Rust port of the React Compiler ([facebook/react#36173](https://github.com/facebook/react/pull/36173)) into oxc. ## Notes (resolved) - Published crates can't reference Git URLs, so using this from Rolldown needs the React Compiler crates on crates.io. ✅ Published as a fork at https://crates.io/crates/forked_react_compiler; this PR depends on those `forked_react_compiler*` crates so people can get earlier access. - The React Compiler crates had no license field. ✅ The published fork carries `license = "MIT"` (per the React repo's MIT license), so Cargo Deny and Security Analysis pass. ## Benchmark **Wall-clock overhead vs plain transform** (release `transformSync`, same `jsx: automatic`, toggling only `reactCompiler`): | fixture | without | with | overhead | | --- | --- | --- | --- | | RadixUIAdoptionSection.jsx (2.5 KiB) | 0.03 ms | 1.81 ms | +1.8 ms | | excalidraw `App.tsx` (406 KiB) | 4.09 ms | 14.49 ms | +10.4 ms (3.5×) | So roughly a fixed ~1.8 ms floor per file plus a per-size cost — about **3.5× the transform time** on a large real-world component. ## Binary size Linking the React Compiler pulls the whole compiler pipeline (HIR, lowering, inference, SSA, optimization, reactive scopes, validation) plus the oxc⇄Babel AST conversion into the binding. Release build of the napi transform addon (`transform.darwin-arm64.node`, `--release`, stripped), darwin-arm64: | build | size | | --- | --- | | baseline (`main`) | 3.51 MiB | | with React Compiler | 8.66 MiB | | **delta** | **+5.14 MiB (+146%, 2.46×)** | |
||
|
|
324c8ae137 |
refactor(semantic): add SemanticBuilder::new_compiler / new_linter presets (#23019)
## Summary Adds two named constructor presets to `SemanticBuilder` that bake in the options each use case needs, so the configuration lives in one place instead of being repeated at call sites: - **`SemanticBuilder::new_compiler()`** — compiler pipeline. Enables syntax-error checking; leaves linter-only analyses (control flow graph, class table) off. - **`SemanticBuilder::new_linter()`** — linter. Enables syntax-error checking, the control flow graph, and the class table. The presets are applied at the real pipeline entry points: - `new_linter()` → the linter service build. - `new_compiler()` → `oxc::Compiler`, and the napi parser/transform bindings. Everywhere else keeps `SemanticBuilder::new()` and turns on only the features it needs (mangler, minifier, formatter, transformer plugins, examples, tests, ...). Individual options can still be overridden after a preset (e.g. the linter service overrides `check_syntax_error` with its runtime flag). Behavior is preserved at every migrated site. Node-store access is intentionally untouched in this PR. ## Verified - Builds across the affected crates + napi; clippy clean; `oxc_linter` tests pass; full `cargo coverage` with no snapshot changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) |
||
|
|
6c30f81eca |
release(crates): oxc v0.134.0 (#22882)
### 🚀 Features - |
||
|
|
b7568d54d7 |
chore(deps): update dependency @napi-rs/cli to v3.7.0 (#22771)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.6.2` → `3.7.0`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.6.2/3.7.0) |  |  |  |  | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.7.0`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.6.2...@napi-rs/cli@3.7.0) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.6.2...@napi-rs/cli@3.7.0) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Cameron Clark <cameron.clark@hey.com> |
||
|
|
83328b65ce |
release(crates): oxc v0.133.0 (#22734)
### 🚀 Features - |
||
|
|
ee659b6785 |
feat(transformer/legacy-decorator): add strictNullChecks option for nullable-union design:type (#22266)
## Summary
Adds a `strictNullChecks` field to `DecoratorOptions` (default `true`)
that
controls whether `null` and `undefined` are elided from union
`design:type`
metadata. The default preserves tsc strict semantics (`T | null` →
`Object`);
setting `strictNullChecks: false` matches
babel-plugin-transform-typescript-metadata
and tsc with `--strictNullChecks=false`, emitting the underlying
primitive
(`T | null` → `String` when `T = string`).
Originally this PR unconditionally elided null/undefined. Per @Dunqing's
review, it's now opt-in so the default-strict behaviour is preserved.
## Motivation
When `strictNullChecks` is off, tsc emits the constructor of the
underlying
primitive. babel-plugin-transform-typescript-metadata always elides null
and
undefined regardless of tsconfig. Downstream consumers (NestJS Swagger,
class-validator, TypeORM, AutoMapper) treat `Object` as "no metadata"
and
silently drop fields, so users with `strictNullChecks: false` (common in
older codebases) get worse behaviour under OXC than under tsc/babel.
## Implementation
```rust
pub struct DecoratorOptions {
pub legacy: bool,
pub emit_decorator_metadata: bool,
#[serde(default = "default_as_true")]
pub strict_null_checks: bool, // default true
}
```
Threaded through `Decorator::new(options) →
LegacyDecorator::new(&options) →
LegacyDecoratorMetadata::new(&options)` (matching the established
`TypeScript::new(&TypeScriptOptions)` precedent), and gated in
`serialize_union_or_intersection_constituents`:
```rust
TSType::TSNullKeyword(_) | TSType::TSUndefinedKeyword(_)
if !is_intersection && !self.strict_null_checks => continue,
```
Mirrored at the napi binding (`napi/transform/src/transformer.rs`) so
direct
Node consumers can flip it the day this lands. Consumers that wire
tsconfig
(rolldown, bundlers) can forward `compilerOptions.strictNullChecks` to
it.
## Behaviour matrix
| Source | `strictNullChecks: true` (default) | `strictNullChecks:
false` |
|---|---|---|
| `string \| null` | `Object` (matches tsc strict, current behaviour) |
`String` (matches babel, tsc non-strict) |
| `number \| undefined` | `Object` | `Number` |
| `boolean \| null \| undefined` | `Object` | `Boolean` |
| `null \| undefined` | `void 0` | `void 0` |
| `string \| number` | `Object` | `Object` (distinct primitives) |
| `string & null` | `Object` | `Object` (intersection unchanged) |
## Test plan
- [x] 7 unit tests in `tests/integrations/decorator_metadata.rs`
covering
`T | null` under both `strictNullChecks: true` (emits `Object`, current
behaviour) and `strictNullChecks: false` (emits primitive), plus
`T | undefined`, `T | null | undefined`, the `null | undefined`
void-only
case, the `string | number` distinct-primitive case (still `Object`),
and
the intersection-with-null regression
- [x] New conformance fixture `oxc/metadata/nullable-union/` with its
own
`options.json` setting `strictNullChecks: false`
- [x] `cargo test -p oxc_transformer` passes (31 unit + 11 integration)
- [x] `cargo run -p oxc_transform_conformance` shows 0 regressions;
baseline
fixtures still pass plus the new `nullable-union`
- [x] `cargo fmt -p oxc_transformer -p oxc_transform_napi` and
`cargo clippy --tests --no-deps` clean
AI assistance was used in writing this patch and tests; the contributor
has
reviewed and tested locally.
---------
Co-authored-by: Dunqing <dengqing0821@gmail.com>
|
||
|
|
63b129182d |
release(crates): oxc v0.132.0 (#22527)
### 🐛 Bug Fixes - |
||
|
|
564ebbf46f |
release(crates): oxc v0.131.0 (#22459)
### 🚀 Features - |
||
|
|
650417ffd0 |
release(crates): oxc v0.130.0 (#22316)
### 🚀 Features - |
||
|
|
ec00055e64 |
release(crates): oxc v0.129.0 (#22108)
### 💥 BREAKING CHANGES - |
||
|
|
9951013ece |
release(crates): oxc v0.128.0 (#21837)
### 💥 BREAKING CHANGES - |
||
|
|
e4cea255b7 |
docs(transform): use the node: namespace in the example (#19998)
Hi, This PR simply updates the documentation example in `napi/transform/README.md` to use the `node:` namespace when importing a Node.js built-in module. As far as I know, the `node:` namespace prefix for built-in modules was introduced in Node.js `14.18.0` and `16.0.0`, so it should work with the current Node.js supported version range. https://github.com/oxc-project/oxc/blob/6245c5629f2ca3bbbfbaffd1400fad06cc23d659/napi/transform/package.json#L87-L89 Also, it appears that the other source files already use it when importing Node.js built-in modules. https://github.com/oxc-project/oxc/blob/6245c5629f2ca3bbbfbaffd1400fad06cc23d659/napi/transform/scripts/patch.js#L1-L2 https://github.com/oxc-project/oxc/blob/6245c5629f2ca3bbbfbaffd1400fad06cc23d659/napi/transform/webcontainer-fallback.cjs#L1-L2 Please let me know if there's anything wrong with this change! |
||
|
|
d8076c9780 |
chore(deps): update rolldown (#21639)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [rolldown](https://rolldown.rs/) ([source](https://redirect.github.com/rolldown/rolldown/tree/HEAD/packages/rolldown)) | [`1.0.0-rc.16` → `1.0.0-rc.17`](https://renovatebot.com/diffs/npm/rolldown/1.0.0-rc.16/1.0.0-rc.17) |  |  |  |  | | [tsdown](http://tsdown.dev/) ([source](https://redirect.github.com/rolldown/tsdown)) | [`0.21.9` → `0.21.10`](https://renovatebot.com/diffs/npm/tsdown/0.21.9/0.21.10) |  |  |  |  | --- ### Release Notes <details> <summary>rolldown/rolldown (rolldown)</summary> ### [`v1.0.0-rc.17`](https://redirect.github.com/rolldown/rolldown/blob/HEAD/CHANGELOG.md#100-rc17---2026-04-22) [Compare Source](https://redirect.github.com/rolldown/rolldown/compare/v1.0.0-rc.16...v1.0.0-rc.17) ##### 🐛 Bug Fixes - link: error on missing export between TS modules ([#​9197](https://redirect.github.com/rolldown/rolldown/issues/9197)) by [@​IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY) - rolldown\_plugin\_vite\_import\_glob: import path should not be affected by absolute base option ([#​9145](https://redirect.github.com/rolldown/rolldown/issues/9145)) by [@​kermanx](https://redirect.github.com/kermanx) - `this.resolve()` returns null for bare relative paths without importer ([#​9142](https://redirect.github.com/rolldown/rolldown/issues/9142)) by [@​Copilot](https://redirect.github.com/Copilot) - collect destructured bindings in HMR module exports ([#​9146](https://redirect.github.com/rolldown/rolldown/issues/9146)) by [@​h-a-n-a](https://redirect.github.com/h-a-n-a) - esbuild-tests: handle 0.28.0 test cases ([#​9149](https://redirect.github.com/rolldown/rolldown/issues/9149)) by [@​sapphi-red](https://redirect.github.com/sapphi-red) - plugin/copy-module: honor external resolutions from other plugins ([#​9139](https://redirect.github.com/rolldown/rolldown/issues/9139)) by [@​TheAlexLichter](https://redirect.github.com/TheAlexLichter) - allow undefined in sourcesContent type ([#​9136](https://redirect.github.com/rolldown/rolldown/issues/9136)) by [@​jurijzahn8019](https://redirect.github.com/jurijzahn8019) - reduce false positives in chunk optimizer circular dependency detection ([#​9049](https://redirect.github.com/rolldown/rolldown/issues/9049)) by [@​AlonMiz](https://redirect.github.com/AlonMiz) ##### 🚜 Refactor - chunk-optimizer: extract runtime-module placement into rehome\_runtime\_module ([#​9163](https://redirect.github.com/rolldown/rolldown/issues/9163)) by [@​IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY) ##### 📚 Documentation - add design doc for sort\_modules execution ordering ([#​9169](https://redirect.github.com/rolldown/rolldown/issues/9169)) by [@​IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY) - add document for `RenderedModule` ([#​9147](https://redirect.github.com/rolldown/rolldown/issues/9147)) by [@​sapphi-red](https://redirect.github.com/sapphi-red) ##### ⚡ Performance - rolldown\_plugin\_vite\_import\_glob: skip self-import earlier using raw path comparison ([#​9193](https://redirect.github.com/rolldown/rolldown/issues/9193)) by [@​shulaoda](https://redirect.github.com/shulaoda) ##### 🧪 Testing - lazy: add `playground/lazy-compilation` ([#​7974](https://redirect.github.com/rolldown/rolldown/issues/7974)) by [@​hyf0](https://redirect.github.com/hyf0) ##### ⚙️ Miscellaneous Tasks - use app token for release PR ([#​9198](https://redirect.github.com/rolldown/rolldown/issues/9198)) by [@​Boshen](https://redirect.github.com/Boshen) - upgrade oxc to 0.127.0 ([#​9194](https://redirect.github.com/rolldown/rolldown/issues/9194)) by [@​Dunqing](https://redirect.github.com/Dunqing) - use oxc security action ([#​9196](https://redirect.github.com/rolldown/rolldown/issues/9196)) by [@​Boshen](https://redirect.github.com/Boshen) - esbuild-tests: remove some tests from ignored list as enum inline is now supported ([#​9184](https://redirect.github.com/rolldown/rolldown/issues/9184)) by [@​sapphi-red](https://redirect.github.com/sapphi-red) - deps: update dependency vite-plus to v0.1.19 ([#​9183](https://redirect.github.com/rolldown/rolldown/issues/9183)) by [@​renovate](https://redirect.github.com/renovate)\[bot] - use vp instead of pnpm in check-wasi-binding-deps ([#​9182](https://redirect.github.com/rolldown/rolldown/issues/9182)) by [@​shulaoda](https://redirect.github.com/shulaoda) - verify wasm32-wasi binding deps match [@​rolldown/browser](https://redirect.github.com/rolldown/browser) before publish ([#​9162](https://redirect.github.com/rolldown/rolldown/issues/9162)) by [@​shulaoda](https://redirect.github.com/shulaoda) - deps: update esbuild for tests to 0.28.0 ([#​9172](https://redirect.github.com/rolldown/rolldown/issues/9172)) by [@​sapphi-red](https://redirect.github.com/sapphi-red) - deps: update rollup submodule for tests to v4.60.2 ([#​9173](https://redirect.github.com/rolldown/rolldown/issues/9173)) by [@​sapphi-red](https://redirect.github.com/sapphi-red) - deps: update test262 submodule for tests ([#​9174](https://redirect.github.com/rolldown/rolldown/issues/9174)) by [@​sapphi-red](https://redirect.github.com/sapphi-red) - sort\_modules: fix stale async-entry sort key comment ([#​9170](https://redirect.github.com/rolldown/rolldown/issues/9170)) by [@​IWANABETHATGUY](https://redirect.github.com/IWANABETHATGUY) - deps: update npm packages ([#​9157](https://redirect.github.com/rolldown/rolldown/issues/9157)) by [@​renovate](https://redirect.github.com/renovate)\[bot] - deps: update dependency diff to v9 ([#​9158](https://redirect.github.com/rolldown/rolldown/issues/9158)) by [@​renovate](https://redirect.github.com/renovate)\[bot] - deps: update rust crates ([#​9156](https://redirect.github.com/rolldown/rolldown/issues/9156)) by [@​renovate](https://redirect.github.com/renovate)\[bot] - run Windows CI on PRs labeled with `ci: windows` ([#​9153](https://redirect.github.com/rolldown/rolldown/issues/9153)) by [@​hyf0](https://redirect.github.com/hyf0) - update-test-dependencies: run setup-rust before file changes ([#​9151](https://redirect.github.com/rolldown/rolldown/issues/9151)) by [@​sapphi-red](https://redirect.github.com/sapphi-red) - deps: update dependency rust to v1.95.0 ([#​9140](https://redirect.github.com/rolldown/rolldown/issues/9140)) by [@​renovate](https://redirect.github.com/renovate)\[bot] ##### ❤️ New Contributors - [@​jurijzahn8019](https://redirect.github.com/jurijzahn8019) made their first contribution in [#​9136](https://redirect.github.com/rolldown/rolldown/pull/9136) - [@​AlonMiz](https://redirect.github.com/AlonMiz) made their first contribution in [#​9049](https://redirect.github.com/rolldown/rolldown/pull/9049) </details> <details> <summary>rolldown/tsdown (tsdown)</summary> ### [`v0.21.10`](https://redirect.github.com/rolldown/tsdown/releases/tag/v0.21.10) [Compare Source](https://redirect.github.com/rolldown/tsdown/compare/v0.21.9...v0.21.10) ##### 🚀 Features - Upgrade rolldown - by [@​sxzz](https://redirect.github.com/sxzz) [<samp>(8a449)</samp>](https://redirect.github.com/rolldown/tsdown/commit/8a4498d) ##### [View changes on GitHub](https://redirect.github.com/rolldown/tsdown/compare/v0.21.9...v0.21.10) </details> --- ### Configuration 📅 **Schedule**: (in timezone Asia/Shanghai) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjEzOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> |
||
|
|
161d6b5583 |
release(crates): oxc v0.127.0 (#21572)
### 🐛 Bug Fixes - |
||
|
|
836fe9d51c |
release(crates): oxc v0.126.0 (#21471)
### 💥 BREAKING CHANGES - |
||
|
|
f5deb55ea6 |
feat(napi/transform): expose optimizeConstEnums and optimizeEnums options (#21388)
Surface the TypeScript transformer's `optimize_const_enums` and `optimize_enums` options through the napi bindings so JavaScript consumers can opt into const enum inlining and regular (non-const) enum inlining. Previously both were hardcoded to `false` in the `From<TypeScriptOptions>` conversion, making them unreachable from JS. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
fb6b1b053f |
release(crates): oxc v0.125.0 (#21374)
### 💥 BREAKING CHANGES - |
||
|
|
e7e1aead4c |
feat(transformer/typescript): add optimize_enums option for regular enum inlining (#20539)
This is required in Rolldown to align with `esbuild`, which could inline a regular enum as long as all its enum members can be evaluated. See https://github.com/rolldown/rolldown/pull/8796 ## Summary Depends on #20508. - Add `optimize_enums` option to `TypeScriptOptions` that treats regular enums with all-evaluable members the same as const enums: inlines member accesses and removes non-exported declarations - Regular enums are only removed when no runtime value references remain (e.g., `typeof Foo`, passing as argument) - Includes 14 conformance test fixtures covering basic, string values, binary expressions, cross-member/cross-enum references, merged enums, exported (kept), non-evaluable (kept), template literals, unary expressions, typeof/value-usage/passed-as-argument (kept), and re-exported (kept) ## Test plan - [x] 14 new conformance test fixtures under `optimize-enums/` - [x] `cargo run -p oxc_transform_conformance` passes - [x] `cargo test -p oxc_transformer` passes |
||
|
|
152b37a6e8 |
chore(deps): update napi (#20829)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | Type | Update | |---|---|---|---|---|---|---|---| | [@napi-rs/cli](https://napi.rs/) ([source](https://redirect.github.com/napi-rs/napi-rs)) | [`3.5.1` → `3.6.0`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.5.1/3.6.0) |  |  |  |  | pnpm.catalog.default | minor | | [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.8.3` → `3.8.4` |  |  |  |  | workspace.dependencies | patch | | [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.5.2` → `3.5.3` |  |  |  |  | workspace.dependencies | patch | --- ### Release Notes <details> <summary>napi-rs/napi-rs (@​napi-rs/cli)</summary> ### [`v3.6.0`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.5.1...@napi-rs/cli@3.6.0) [Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.5.1...@napi-rs/cli@3.6.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuMTAyLjciLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> |
||
|
|
38aea543e4 |
release(crates): oxc v0.124.0 (#21084)
### 🐛 Bug Fixes - |
||
|
|
990763453c | release(crates): oxc v0.123.0 (#20862) | ||
|
|
9dd33b080c | release(crates): oxc v0.122.0 (#20648) | ||
|
|
6cd513ffae |
release(crates): oxc v0.121.0 (#20515)
### 🚀 Features - |
||
|
|
8741e6532a |
release(crates): oxc v0.120.0 (#20422)
### 🐛 Bug Fixes - |
||
|
|
c27263ad61 |
chore(deps): update dependency oxlint-tsgolint to v0.17.0 (#20405)
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [oxlint-tsgolint](https://redirect.github.com/oxc-project/tsgolint) | [`0.16.0` → `0.17.0`](https://renovatebot.com/diffs/npm/oxlint-tsgolint/0.16.0/0.17.0) |  |  |  |  | --- ### Release Notes <details> <summary>oxc-project/tsgolint (oxlint-tsgolint)</summary> ### [`v0.17.0`](https://redirect.github.com/oxc-project/tsgolint/releases/tag/v0.17.0) [Compare Source](https://redirect.github.com/oxc-project/tsgolint/compare/v0.16.0...v0.17.0) #### What's Changed - refactor: make E2E benchmark more realistic by [@​camchenry](https://redirect.github.com/camchenry) in [#​763](https://redirect.github.com/oxc-project/tsgolint/pull/763) - docs: improve README positioning by [@​Boshen](https://redirect.github.com/Boshen) in [#​767](https://redirect.github.com/oxc-project/tsgolint/pull/767) - Revise oxlint command examples in README by [@​connorshea](https://redirect.github.com/connorshea) in [#​768](https://redirect.github.com/oxc-project/tsgolint/pull/768) - chore(deps): update dependency vitest>vite to v8.0.0-beta.16 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​770](https://redirect.github.com/oxc-project/tsgolint/pull/770) - chore(deps): update github-actions by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​771](https://redirect.github.com/oxc-project/tsgolint/pull/771) - chore(deps): update module golang.org/x/sys to v0.42.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​772](https://redirect.github.com/oxc-project/tsgolint/pull/772) - chore(deps): update taiki-e/install-action action to v2.68.25 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​773](https://redirect.github.com/oxc-project/tsgolint/pull/773) - fix(dot-notation): optional chaining autofix by [@​camc314](https://redirect.github.com/camc314) in [#​775](https://redirect.github.com/oxc-project/tsgolint/pull/775) - fix(no-unnecessary-condition): avoid false positive for unresolved conditional null checks by [@​camc314](https://redirect.github.com/camc314) in [#​776](https://redirect.github.com/oxc-project/tsgolint/pull/776) - fix(prefer-optional-chain): false positive on unrelated comparisons by [@​camc314](https://redirect.github.com/camc314) in [#​778](https://redirect.github.com/oxc-project/tsgolint/pull/778) - chore(justfile): add alias `r` for `ready` by [@​younggglcy](https://redirect.github.com/younggglcy) in [#​782](https://redirect.github.com/oxc-project/tsgolint/pull/782) - chore(justfile): add pnpm install steps to init recipe by [@​younggglcy](https://redirect.github.com/younggglcy) in [#​783](https://redirect.github.com/oxc-project/tsgolint/pull/783) - fix(no-base-to-string): handle overloaded toString declarations by [@​camc314](https://redirect.github.com/camc314) in [#​779](https://redirect.github.com/oxc-project/tsgolint/pull/779) - chore: update typescript-go submodule by [@​camc314](https://redirect.github.com/camc314) in [#​785](https://redirect.github.com/oxc-project/tsgolint/pull/785) - fix(restrict-plus-operands): report actual type instead of always reporting RegExp by [@​younggglcy](https://redirect.github.com/younggglcy) in [#​786](https://redirect.github.com/oxc-project/tsgolint/pull/786) - fix(no-unnecessary-condition): handle IndexedAccess types in ?? and ??= paths by [@​younggglcy](https://redirect.github.com/younggglcy) in [#​784](https://redirect.github.com/oxc-project/tsgolint/pull/784) - fix(no-unnecessary-type-assertion): handle JSDoc autofix ranges by [@​Jkker](https://redirect.github.com/Jkker) in [#​781](https://redirect.github.com/oxc-project/tsgolint/pull/781) - fix(no-unnecessary-condition): handle branded record keys in nullish checks by [@​camc314](https://redirect.github.com/camc314) in [#​791](https://redirect.github.com/oxc-project/tsgolint/pull/791) - chore: update typescript-go submodule by [@​camc314](https://redirect.github.com/camc314) in [#​788](https://redirect.github.com/oxc-project/tsgolint/pull/788) - fix(no-unnecessary-condition): use resolved call types for optional chains by [@​camc314](https://redirect.github.com/camc314) in [#​792](https://redirect.github.com/oxc-project/tsgolint/pull/792) #### New Contributors - [@​younggglcy](https://redirect.github.com/younggglcy) made their first contribution in [#​782](https://redirect.github.com/oxc-project/tsgolint/pull/782) - [@​Jkker](https://redirect.github.com/Jkker) made their first contribution in [#​781](https://redirect.github.com/oxc-project/tsgolint/pull/781) **Full Changelog**: <https://github.com/oxc-project/tsgolint/compare/v0.16.0...v0.17.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> |
||
|
|
e9b5546ed2 |
release(crates): oxc v0.119.0 (#20371)
### 🚀 Features - |
||
|
|
ce4ecb0ffe |
release(crates): oxc v0.118.0 (#20266)
Co-authored-by: leaysgur <6259812+leaysgur@users.noreply.github.com> |
||
|
|
1606bd1feb |
refactor(apps, napi, tasks): remove noUnusedLocals from tsconfigs (#20155)
Remove `noUnusedLocals` option from `tsconfig.json` files. It's redundant, as Oxlint `no-unused-vars` covers this for us. It's an annoyance to have `noUnusedLocals` enabled, as in VS Code TypeScript complains about unused vars, even if they're prefixed with `_`. Removing this option allows simplifying type tests added in #20066. Only reason these types had to be exported was to stop TS complaining that they were unused. |
||
|
|
dafe4ad8cc |
release(crates): oxc v0.117.0 (#20142)
### 🚀 Features - |