ShopperCove
Menu
All writingBlogTopicsCategoriesAboutRSS
Blog
Categories
Observability & SRE62All categories
Topics
sre111localhost lab102performance70python58javascript47bundle size36benchmarking35node.js35web development21typescript19benchmark16content creation15All topics
About
Loading article…

ShopperCove

Hands-on notes on developer tools, written after the tool has actually been run.

All writingBlogCategoriesTopicsAboutPrivacyRSS

© 2026 ShopperCove

On this page

  1. SourceCode: tokens and comments in types/docs
  2. Rule fixes (edge cases, Unicode, autofix)
  3. Docs / chores (skim)
  4. Hands-on upgrade checklist
  5. Bottom line
  6. Sources
  7. Related
  1. Blog

What Changed in ESLint v10.12.0? Should You Update?

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.

5 October 2026·4 min read

Summary
On this page
  1. SourceCode: tokens and comments in types/docs
  2. Rule fixes (edge cases, Unicode, autofix)
  3. Docs / chores (skim)
  4. Hands-on upgrade checklist
  5. Bottom line
  6. Sources
  7. Related

ESLint v10.12.0: SourceCode tokens/comments types + rule fixes (2 Oct 2026)

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.

SourceCode: tokens and comments in types/docs

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:

  • Existing call sites that already pass nodes/tokens/comments are unaffected at runtime.
  • TypeScript code that implements or mocks 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).

Rule fixes (edge cases, Unicode, autofix)

The blog lists rules updated for edge cases, including autofix behavior and supplementary Unicode / astral letter handling:

  • consistent-return
  • max-lines-per-function
  • new-cap
  • no-eval
  • no-invalid-this
  • no-loss-of-precision
  • prefer-arrow-callback
  • prefer-exponentiation-operator

Notable fix blurbs from the same release notes:

AreaWhat the notes say
prefer-arrow-callbackFalse positive in conditional test fixed
max-lines-per-functionSkip lines with multiple comments
Astral lettersFixes spanning consistent-return, no-eval, no-invalid-this (and new-cap feat)
prefer-exponentiation-operatorAutofix for async function base
curlyMissing space after else in autofix
id-lengthCorrect message for long private names
getFunctionHeadLocSupport TSFunctionType
no-loss-of-precisionFalse positive with 0.e5

Docs / chores (skim)

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.

Hands-on upgrade checklist

  1. Inventory: npm ls eslint (or check the lockfile). Note whether you are below 10.12.0.
  2. Pin / bump in staging: install 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.
  3. TypeScript plugin / custom SourceCode mocks: if you implement SourceCode / SourceCodeBase, update getText / getLoc / getRange typings to accept tokens and comments.
  4. Re-run lint + autofix CI: especially suites that enable the rules listed above—watch for changed autofixes on prefer-exponentiation-operator, curly, and fewer false positives on prefer-arrow-callback / no-loss-of-precision.
  5. Unicode / identifiers: if you lint code with astral-plane identifiers, re-check new-cap and related rules after the bump.
  6. Do not invent security urgency: this minor is typed as features + bugfixes in the official blog; ShopperCove is not attaching CVE IDs.

ShopperCove did not change production ESLint versions for this article. Prefer the official release post over third-party roundups.

Bottom line

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.

Sources

  • 01registry.npmjs.org/eslint/10.12.0
  • 02npmjs.com/package/eslint
  • 03github.com/eslint/eslint

Related

  • 01shoppercove.com/blog/vite-plus-1-0-unified-toolchain-october-2026
  • 02shoppercove.com/blog/playwright-1-63-test-locks-october-2026
  • 03shoppercove.com/blog/astro-7-3-preview-ignore-lock-october-2026
  • 04shoppercove.com/blog/angular-router-ssr-queryparams-dos-october-2026
  • 05shoppercove.com/blog/nodejs-26-lts-october-2026-schedule-change
  • 06shoppercove.com/blog/nextjs-15-lts-end-of-support-october-2026
  • 07shoppercove.com/blog/nextjs-16-3-8-security-release-2026
  • 08shoppercove.com/blog/firefox-157-security-fixes-css-changes-october-2026
eslintjavascripttypescriptsourcecodestatic analysislintingastral letters

Lab evidence

What I found running this

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.

Notes when a lab post goes up

Occasional email for new hands-on reviews. No sequence and no sponsors.

Keep reading

  • Biome vs ESLint: Should You Switch? 0.41s vs 18.7s

    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 vs ESLint: Is 100x Faster Worth It?

    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

  • Is no-unsafe-enum-assignment in Recommended?

    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