Skip to content

Upgrade to ESLint v10 and @eslint/js v10#542

Merged
mattobee merged 1 commit intomainfrom
upgrade/eslint-v10
Feb 23, 2026
Merged

Upgrade to ESLint v10 and @eslint/js v10#542
mattobee merged 1 commit intomainfrom
upgrade/eslint-v10

Conversation

@mattobee
Copy link
Copy Markdown
Member

Summary

Upgrades ESLint and @eslint/js from v9 to v10. Closes #541.

  • eslint: ^9.39.1 -> ^10.0.1
  • @eslint/js: ^9.39.1 -> ^10.0.1

Changes

Dependency updates

  • Bumped eslint and @eslint/js to v10
  • Removed eslint-plugin-jsx-a11y — no eslint v10 support yet, and it was installed but not configured in eslint.config.mjs
  • Removed @typescript-eslint/parser — redundant since typescript-eslint already provides it

Lint fixes for new/updated rules

  • preserve-caught-error (new in v10 recommended): Added { cause: error } to all re-thrown errors in edge functions to preserve error chains
  • @typescript-eslint/no-explicit-any: Replaced any types with unknown / Record<string, unknown> in edge functions
  • @typescript-eslint/no-unused-vars: Removed unused Speaker type import in Event.vue
  • vue/no-dupe-keys: Renamed timezone dayjs plugin import to timezonePlugin in EventDate.vue to avoid collision with the timezone prop
  • @typescript-eslint/triple-slash-reference: Added eslint-disable for Astro's standard env.d.ts triple-slash references

No config changes needed

The existing eslint.config.mjs already uses flat config format, so the biggest v10 breaking change (removal of eslintrc support) doesn't apply.

Verification

  • Linting passes with zero errors
  • Build succeeds
  • All 34 unit tests pass
  • Note: ESLint v10 requires Node ^20.19.0 || ^22.13.0 || >=24. CI uses lts/* (Node 22) which satisfies this.

- Bump eslint from ^9.39.1 to ^10.0.1
- Bump @eslint/js from ^9.39.1 to ^10.0.1
- Remove eslint-plugin-jsx-a11y (no eslint v10 support yet, unused in config)
- Remove @typescript-eslint/parser (redundant, typescript-eslint provides it)
- Fix preserve-caught-error violations (new in v10 recommended config)
- Replace no-explicit-any with proper types (unknown, Record<string, unknown>)
- Remove unused Speaker type import in Event.vue
- Rename timezone import to avoid vue/no-dupe-keys collision in EventDate.vue
- Suppress triple-slash-reference in Astro-generated env.d.ts

Closes #541
@mattobee mattobee added dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code labels Feb 23, 2026
@github-project-automation github-project-automation Bot moved this to Not Started in Eventua11y Feb 23, 2026
@netlify
Copy link
Copy Markdown

netlify Bot commented Feb 23, 2026

Deploy Preview for eventua11y ready!

Name Link
🔨 Latest commit 24f5575
🔍 Latest deploy log https://app.netlify.com/projects/eventua11y/deploys/699c97426f884700081b9563
😎 Deploy Preview https://deploy-preview-542--eventua11y.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@mattobee mattobee merged commit 8879c38 into main Feb 23, 2026
11 checks passed
@mattobee mattobee deleted the upgrade/eslint-v10 branch February 23, 2026 18:11
@github-project-automation github-project-automation Bot moved this from Not Started to Done in Eventua11y Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Upgrade to ESLint v10 and @eslint/js v10

1 participant