ESLint published v10.12.0 on 2 October 2026 as a minor release: documentation and TypeScript types for SourceCode#getText(), getLoc(), and getRange() now accept tokens and comments (matching runtime behavior), plus multiple rule fixes including astral/Unicode letter handling and autofix edge cases. npm latest confirmed 10.12.0; ShopperCove docs checklist only; no affiliate.
4 min read
On 2 October 2026, ESLint published v10.12.0, a minor release that adds features and fixes bugs from the previous release. ShopperCove did not upgrade a production lint pipeline for this note and did not run benchmarks. Package identity was confirmed on the npm registry on 5 October 2026 (eslint@10.12.0, dist-tag latest). Primary source: the official ESLint v10.12.0 release blog. This is a docs-based upgrade checklist—not performance advice and not a security advisory (no CVEs are claimed here).
There is no affiliate link in this article. This post has no affiliate links.
Rule authors work with ESLint’s SourceCode object. Its getText(), getLoc(), and getRange() methods have long accepted a node, token, or comment at runtime, but documentation did not describe every argument type, and TypeScript definitions rejected some valid calls (for example, passing a comment).
v10.12.0 updates the documentation and type definitions to match actual behavior and to align with the core SourceCodeBase interface used in language plugins:
SourceCode may need getText / getLoc / getRange signatures updated to accept tokens and comments.Feature commits called out in the blog: allow SourceCode#getText() to accept tokens and comments (#21340); handle astral letters in new-cap (#21357).
The blog lists rules updated for edge cases, including autofix behavior and supplementary Unicode / astral letter handling:
consistent-returnmax-lines-per-functionnew-capno-evalno-invalid-thisno-loss-of-precisionprefer-arrow-callbackprefer-exponentiation-operatorNotable fix blurbs from the same release notes:
| Area | What the notes say |
|---|---|
prefer-arrow-callback | False positive in conditional test fixed |
max-lines-per-function | Skip lines with multiple comments |
| Astral letters | Fixes spanning consistent-return, no-eval, no-invalid-this (and new-cap feat) |
prefer-exponentiation-operator | Autofix for async function base |
curly | Missing space after else in autofix |
id-length | Correct message for long private names |
getFunctionHeadLoc | Support TSFunctionType |
no-loss-of-precision | False positive with 0.e5 |
Documentation clarifications include one-var separateRequires matching any require() call, and a typo fix in no-unused-expressions. Chores include ecosystem plugin updates, CodeQL action bumps, Prettier dependency bumps, a perf change caching normalized config globals per languageOptions, and removal of CLAUDE.md in favor of AGENTS.md. Treat chores as release hygiene unless your fork tracked those files.
npm ls eslint (or check the lockfile). Note whether you are below 10.12.0.eslint@10.12.0 (or newer patch on the 10.12 line when available). Confirm with npm view eslint version → expect 10.12.0 as latest as of sources read 5 Oct 2026.SourceCode / SourceCodeBase, update getText / getLoc / getRange typings to accept tokens and comments.prefer-exponentiation-operator, curly, and fewer false positives on prefer-arrow-callback / no-loss-of-precision.new-cap and related rules after the bump.ShopperCove did not change production ESLint versions for this article. Prefer the official release post over third-party roundups.
ESLint v10.12.0 (2 Oct 2026) is a practical minor: SourceCode docs/types finally match token/comment arguments, plus a batch of rule and autofix fixes (including astral letter handling). Pin eslint@10.12.0 when ready. No affiliate.
Lab evidence
Sources read 5 Oct 2026 (Asia/Calcutta) via WebFetch/curl: official blog Open eslint.org (Published 02 Oct 2026); npm registry eslint@10.12.0 (time 2026-10-02T20:08:19.213Z; dist-tag latest=10.12.0). Concrete upgrade checklist: pin eslint@10.12.0; review SourceCode mock/implement signatures if you implement SourceCodeBase (getText/getLoc/getRange now typed for tokens/comments); re-run autofix CI for rules listed—consistent-return, max-lines-per-function, new-cap, no-eval, no-invalid-this, no-loss-of-precision, prefer-arrow-callback, prefer-exponentiation-operator, plus curly space-after-else and id-length message fix. No production lint suite upgraded on ShopperCove; no invented CVEs. If CMS excerpt truncates, append this hands-on block.
Biome 2.5.15 check vs ESLint 9.39.4 + Prettier 3.8.4 on react-hook-form (317 files): 0.41 s vs 18.7 s sequential stack (ESLint 13.58 s, Prettier check 5.22 s). migrate eslint: 54/476 direct, ~50% covered. Biome 200 errors/427 warnings vs ESLint 0/562; 9 format diffs; 287 noExplicitAny from recommended.
Summary5 Oct 20266 min read
oxlint 1.87.0 vs ESLint 9.39.4 on react-hook-form (301 files): 0.09 s vs 9.81 s single-thread (6.02 s with --concurrency auto, 1.10 s warm --cache). @oxlint/migrate ported 42 of 84 rules natively, 80 with JS plugins. 315 vs 562 warnings; seeded test 11/15 native, 13/15 with JS plugins, ESLint 15/15.
Summary5 Oct 20267 min read
typescript-eslint published v8.71.0 on 28 September 2026: new typed rule @typescript-eslint/no-unsafe-enum-assignment (flags plain numbers/unsafe values assigned into enum-typed locations) plus fixes for no-misused-promises, no-unnecessary-type-assertion, unbound-method, and switch-exhaustiveness-check. npm latest confirmed 8.71.0; ShopperCove docs checklist only; pairs with live ESLint 10.12 coverage; no affiliate.
Summary5 Oct 20264 min read