Skip to content

v0.9.3

Choose a tag to compare

@fansenze fansenze released this 22 Sep 06:28
· 121 commits to main since this release

Highlights

Near-complete eslint-plugin-n support

Rslint now supports nearly all of eslint-plugin-n's rules and recommended presets through the native node/* namespace. The 38 supported rules cover dependency resolution, package publishing, deprecated APIs, and compatibility with configured Node.js versions. Use nodePlugin.configs.recommended for mixed CommonJS and ES module projects, or choose recommendedModule or recommendedScript explicitly.

import { defineConfig, nodePlugin } from '@rslint/core';

export default defineConfig([nodePlugin.configs.recommended]);

Faster Rstest analysis

Rstest rules avoid redundant scans of mock factories and assertion pairs, and defer fix construction until needed. In a synthetic benchmark with 2,000 adjacent assertion pairs, rstest/prefer-called-exactly-once-with rule execution dropped from 289.8 ms to 4.2 ms. #2122, #2123, #2124, #2243

What's Changed

New Features 🎉

Performance 🚀

  • perf: reduce import cycle graph work by @fansenze in #2104
  • perf(rstest): defer edits in five rstest/ rules by @elecmonkey in #2122
  • perf(rstest): optimize prefer-called-exactly-once-with interval scans by @elecmonkey in #2124
  • perf(rstest): make no-async-mock-factory linear in mock calls by @elecmonkey in #2123

Bug Fixes 🐞

  • fix: correct no-var autofixes for deferred initializer calls by @fansenze in #2087
  • fix(react): honor JSX pragma in display-name by @elecmonkey in #2095
  • fix(utils): align glob code units and capture replacements by @fansenze in #2102
  • fix(react): ignore abstract methods in no-is-mounted by @elecmonkey in #2106
  • fix(react): align no-render-return-value with upstream by @elecmonkey in #2117
  • fix: resolve projectService projects per lint target by @fansenze in #2105
  • fix(react): align no-string-refs with upstream by @elecmonkey in #2118
  • fix(tsgo): symbol data collect for anonymous type by @quininer in #2132
  • fix(react): align jsx-curly-brace-presence with upstream by @elecmonkey in #2141
  • fix(react): align jsx-props-no-multi-spaces with upstream by @elecmonkey in #2139
  • fix: cover diagnostic loc by @CPunisher in #2157
  • fix(react): align jsx-key with upstream by @elecmonkey in #2161
  • fix(react): align jsx-no-target-blank with upstream by @elecmonkey in #2162
  • fix: handle wrapped expressions in iframe sandbox checks by @fansenze in #2171
  • fix(react): align jsx-fragments with upstream by @elecmonkey in #2140
  • fix(playground): allow import cdn scripts in worker-src CSP by @swwind in #2187
  • fix: support multi-slash rule names across runtime and tooling by @fansenze in #2211
  • fix(node): honor fallback and fullySpecified resolver options by @fansenze in #2219

Refactor 🔨

  • refactor: sync rule and TypeScript version metadata by @fansenze in #2078
  • refactor: move shared accessor helpers into utils by @fansenze in #2090
  • refactor: remove type extra by @CPunisher in #2156
  • refactor: share file-level scope analysis across rules by @elecmonkey in #2164
  • refactor(react): enforce shared scope analysis in helpers by @elecmonkey in #2165
  • refactor: share project construction across lint scopes by @fansenze in #2191
  • refactor: share API reference tracking across rules by @fansenze in #2193
  • refactor: resolve lint projects from effective configuration by @fansenze in #2192
  • refactor(utils): share package and module rule utilities by @fansenze in #2212
  • refactor(jest): share call analysis across jest recommended rules by @elecmonkey in #2243

Document 📖

Other Changes

New Contributors

Full Changelog: v0.9.2...v0.9.3