Skip to content

oxlint v1.23.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 13 Oct 16:51
Immutable release. Only release title and notes can be modified.
0082cda

[1.23.0] - 2025-10-13

🚀 Features

  • 452d128 linter: Node/no_process_env (#14536) (Kenneth Skovhus)
  • a9e1261 linter: Implement react-refresh/only-export-components (#14122) (Rintaro Itokawa)
  • a8d542b linter/no-duplicate-imports: Support allowSeparateTypeImports option (#14527) (camc314)
  • 75a529c linter: Add run info about what functions rules implement (#13839) (camchenry)
  • 4fbdef2 language_server: Support fmt.configPath configuration (#14502) (Sysix)
  • 4d3ce2e language_server: Autodetect root .oxfmtrc.json (#14466) (Sysix)

🐛 Bug Fixes

  • fb4a20d language_server: Add whitespace for // oxlint-disable-next-line fix (#14356) (Sysix)
  • 6fce7f4 oxlint/changelog: Remove duplicate changelog entries (#14528) (camc314)
  • 74e52f3 linter/plugins: Resolve JS plugins with ESM condition names (#14541) (magic-akari)
  • 9965676 linter/exhaustive-deps: Ignore empty strings passed to additionalHooks option (#14464) (Redas)
  • d0a8e3e linter: vue/no_required_prop_with_default called Option::unwrap() on a None value (#14491) (Sysix)
  • 1192ea2 linter: Correct nextjs/no-typos path handling (#14480) (shulaoda)
  • 2796b16 tsgolint: Pipe tsgolints stderr (#14477) (camc314)

🚜 Refactor

  • 6440cde linter: Remove lifetime of Message (#14481) (Sysix)
  • f599bef language_server: Move Message to DiagnosticReport transformation to one place (#14447) (Sysix)
  • 4f301de napi/parser, linter/plugins: Improve formatting of generated code (#14554) (overlookmotel)
  • 68c0252 napi/parser, linter/plugins: Shorten generated raw transfer deserializer code (#14553) (overlookmotel)
  • 20e884e linter: Store LintService in LintRunner (#14471) (Sysix)
  • 9e9c5ba linter: Simplify built-in lint plugin checks (#14518) (camchenry)
  • 1986e0f linter/no-ex-assign: Use let-else chain (#14526) (camc314)
  • ce9bcf0 linter/no-func-assign: Use let-else chain (#14525) (camc314)
  • a9cea7c language_server: Use FxHashSet for ServerLinter::extended_paths (#14517) (Sysix)
  • ea5838e linter/no-import-assign: Use let-else chain (#14524) (camc314)
  • f977700 language_server: Pass LintOptions to Worker::refresh_server_linter (#14510) (Sysix)
  • 54b001f linter/no-new-require: Improve diagnostic message clarity (#14511) (shulaoda)
  • 650ea68 linter: Improve nextjs/no-typos rule (#14476) (shulaoda)

📚 Documentation

  • 198f2e9 linter: Fix code example for branches-sharing-code (#14514) (camc314)
  • d776a17 linter: Improve nextjs/no-typos rule documentation (#14470) (shulaoda)

⚡ Performance

  • b44a30e language_server: Transform Message to DiagnosticReport with one call (#14448) (Sysix)
  • 31766fd linter/plugins: Provide loc via prototype (#14552) (overlookmotel)
  • aec0c08 linter: Allow analyzing node types in match blocks with guards (#14459) (camchenry)
  • 9044187 linter: Skip running node-specific rule if file contains no relevant nodes (#14457) (camchenry)
  • 422f54e linter: Only run rule run functions if implemented (#14454) (camchenry)
  • 2c228ae liner: Use top-level match for no_obj_calls (#14523) (camchenry)
  • c49d891 linter: Use match for no_negated_condition (#14522) (camchenry)
  • e222fc2 linter: Use match for no_multi_assign (#14521) (camchenry)
  • 4440516 linter: Refactor rules to take advantage of node type skipping (#14519) (camchenry)
  • 78261d6 linter: Refactor no-invalid-fetch-options to be more easily analyzed (#14458) (camchenry)

🧪 Testing

  • 8d8881d linter/plugins: Expand tests for module resolution of plugins (#14559) (overlookmotel)
  • 33b6cde language_server: Add basic tests for WorkspaceWorker::did_change_configuration (#14531) (Sysix)
  • bfe1ecd language_server: Add tests for WorkspaceWorker::init_watchers (#14516) (Sysix)

💼 Other