Highlights
Built-in globals catalog
@rslint/core now exports globals, bundling the complete environment catalog from the pinned globals package plus an Rstest-specific globals.rstest preset. Upstream environment maps are loaded on first access, so browser, Node.js, worker, and other environments can be configured without installing globals separately.
import { defineConfig, globals } from '@rslint/core';
export default defineConfig([
{
files: ['src/client/**'],
languageOptions: {
globals: globals.browser,
},
},
{
files: ['scripts/**'],
languageOptions: {
globals: globals.node,
},
},
]);What's Changed
New Features 🎉
- feat(utils): add a minimatch port for glob matching by @swwind in #1597
- feat: export lazy-loaded globals presets from @rslint/core by @fansenze in #1712
- feat: collect JSX intrinsic element symbols by @CPunisher in #1700
- feat: port rule no-void by @swwind in #1722
- feat: port rule block-scoped-var by @swwind in #1723
- feat(typescript): port rule switch-exhaustiveness-check by @swwind in #1698
- feat: port rule no-ternary by @swwind in #1728
- feat: port rule no-plusplus by @swwind in #1729
- feat: port rule init-declarations by @swwind in #1726
- feat: port rule no-continue by @swwind in #1735
- feat(rstest): add expect-expect rule by @elecmonkey in #1614
- feat(rstest): add no-focused-tests rule by @elecmonkey in #1363
- feat: collect source files from project references by @CPunisher in #1768
- feat: port rule no-use-before-define by @swwind in #1756
- feat: add Rstest globals by @elecmonkey in #1772
- feat(rstest): add valid-expect rule by @elecmonkey in #1695
- feat: port rule no-undefined by @swwind in #1724
- feat: port rule max-classes-per-file by @swwind in #1746
- feat: port rule no-negated-condition by @swwind in #1747
- feat(rstest): add no-standalone-expect rule by @elecmonkey in #1701
- feat: port rule no-div-regex by @swwind in #1752
- feat: port rule no-eq-null by @swwind in #1748
- feat: port rule max-statements by @swwind in #1727
- feat: port rule operator-assignment by @swwind in #1725
- feat: port rule no-promise-executor-return by @swwind in #1759
- feat: port rule no-warning-comments by @swwind in #1731
- feat(jest,rstest): add valid-expect-in-promise rule by @elecmonkey in #1696
- feat(rstest): add no-import-node-test rule by @elecmonkey in #1775
Performance 🚀
- perf(lsp): carry module specifier collection across editor Programs by @swwind in #1720
- perf: optimize max-statements field diagnostics by @fansenze in #1779
- perf: limit gitignore scans to CLI targets by @fansenze in #1781
- perf: optimize LSP TypeScript project selection by @fansenze in #1790
Bug Fixes 🐞
- fix: skip JSDoc type constraints by @fansenze in #1704
- fix: align minimatch with ECMAScript semantics by @fansenze in #1706
- fix: align consistent-indexed-object-style with upstream by @fansenze in #1710
- fix: align non-nullable type assertion style by @fansenze in #1708
- fix: align no-deprecated with upstream by @fansenze in #1709
- fix: align no-unnecessary-type-parameters with upstream by @fansenze in #1713
- fix: harden restrict-template-expressions by @fansenze in #1714
- fix: align no-unsafe-argument with upstream by @fansenze in #1715
- fix: align no-unsafe-member-access with upstream by @fansenze in #1716
- fix: align no-unsafe-assignment with upstream by @fansenze in #1707
- fix: align no-unsafe-return with upstream by @fansenze in #1717
- fix: align restrict-plus-operands with upstream by @fansenze in #1718
- fix: tie module specifier cache to source files by @fansenze in #1730
- fix: align block-scoped-var with ESLint by @fansenze in #1739
- fix: use program accessor in block-scoped-var by @fansenze in #1741
- fix: align no-use-before-define semantics by @fansenze in #1774
- fix: harden and optimize operator assignment by @fansenze in #1780
- fix: align and optimize no-import-assign by @fansenze in #1782
- fix: prioritize direct TypeScript projects for lint targets by @fansenze in #1784
Refactor 🔨
- refactor: replace gap programs with standalone ASTs by @fansenze in #1685
- refactor: consolidate program framework boundaries by @fansenze in #1742
- refactor: extract no-shadow's scope manager into internal/utils/scope by @swwind in #1755
- refactor(utils): name each JavaScript port for what it ports by @swwind in #1705
- refactor: rebuild @typescript-eslint/no-use-before-define on the shared scope model by @swwind in #1758
Document 📖
- docs(react-hooks): record each rule's aligned upstream version by @swwind in #1688
- docs: reorganize configuration and API documentation by @fansenze in #1773
Other Changes
- chore: remove cspell directive breaking website build by @fansenze in #1703
- chore: update go.work.sum by @fansenze in #1711
- chore(deps): upgrade @rslib/core to 1.0.0-beta.3 by @elecmonkey in #1719
- test: organize Go test layout by @fansenze in #1744
- chore(deps): update module golang.org/x/text to v0.41.0 by @renovate[bot] in #1763
- chore(deps): update module golang.org/x/tools to v0.49.0 by @renovate[bot] in #1764
- chore: bump tsgo packages to 0.0.8 by @CPunisher in #1769
- chore: bump globals to 17.11.0 by @fansenze in #1777
Full Changelog: v0.8.0...v0.8.1