Skip to content

chore(ts-sdk): migrate to eslint 10 and @typescript-eslint v8#81

Open
adnanrhussain wants to merge 1 commit into
mainfrom
ahussain/eslint-v10-migration
Open

chore(ts-sdk): migrate to eslint 10 and @typescript-eslint v8#81
adnanrhussain wants to merge 1 commit into
mainfrom
ahussain/eslint-v10-migration

Conversation

@adnanrhussain
Copy link
Copy Markdown
Contributor

@adnanrhussain adnanrhussain commented May 22, 2026

Summary

Dependabot opened three PRs that individually can't merge because they share a peer-dep conflict (@typescript-eslint/eslint-plugin@6 only supports eslint@^7 || ^8, blocking the ESLint 10 bump):

ESLint 10 also removes the legacy .eslintrc config format entirely, so the bump requires a flat-config migration as well. This PR does all four pieces in one coordinated change so the upgrade can actually land.

(Older variants of the same bumps — #45, #54, #55, #56 — are superseded and will close out automatically.)

Changes

  • Bumped eslint 8.56 → 10.4, @typescript-eslint/{eslint-plugin,parser} 6.19 → 8.59 (latest stable for all)
  • Added @eslint/js and globals (required by flat config)
  • Replaced .eslintrc.cjs with eslint.config.js (flat config)
  • Updated lint script: eslint src tests --ext .tseslint "src/**/*.ts" "tests/**/*.ts" (--ext removed in ESLint 9+)
  • Disabled the base no-redeclare rule (doesn't understand TS type/value pattern used in zod schemas)
  • Removed two stale eslint-disable directives that v10 correctly reports as unused

Testing

All gates green locally:

  • npm run lint
  • npm run typecheck
  • npm run build
  • npm run test:unit
  • npm run test:coverage

@codecov
Copy link
Copy Markdown

codecov Bot commented May 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates the TypeScript SDK’s linting-toolchain upgrades by migrating to ESLint v10 and @typescript-eslint v8, including the required move from legacy .eslintrc to ESLint flat config so dependency/peer-dep conflicts can be resolved cleanly.

Changes:

  • Upgraded eslint to v10 and @typescript-eslint/{eslint-plugin,parser} to v8, adding flat-config dependencies (@eslint/js, globals).
  • Replaced .eslintrc.cjs with eslint.config.js and updated the lint script for ESLint 9+ CLI semantics.
  • Removed now-unused eslint-disable directives that ESLint v10 flags as unused; disabled base no-redeclare to avoid TS type/value false positives.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
sdks/typescript/src/batch/evaluator.ts Removes an unused eslint-disable directive now reported by ESLint v10.
sdks/typescript/src/batch/csv.ts Removes an unused eslint-disable directive now reported by ESLint v10.
sdks/typescript/package.json Bumps ESLint + TypeScript-ESLint deps, adds flat-config deps, updates lint script.
sdks/typescript/package-lock.json Lockfile updates for the dependency upgrades.
sdks/typescript/eslint.config.js Introduces ESLint flat config for TS + Node globals and TS-eslint rules.
sdks/typescript/.eslintrc.cjs Removes legacy ESLint config (flat-config migration).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +13 to +17
ecmaVersion: 2022,
sourceType: 'module',
project: './tsconfig.json',
tsconfigRootDir: import.meta.dirname,
},
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants