Skip to content

chore(tooling): fix tseslint.config deprecation#51

Merged
tataihono merged 1 commit intomainfrom
fix/50-tseslint-deprecation
Feb 18, 2026
Merged

chore(tooling): fix tseslint.config deprecation#51
tataihono merged 1 commit intomainfrom
fix/50-tseslint-deprecation

Conversation

@tataihono
Copy link
Copy Markdown
Contributor

@tataihono tataihono commented Feb 17, 2026

Resolves #50

Summary

Replace deprecated tseslint.config() with ESLint's defineConfig() from eslint/config. Same flattening behavior, removes deprecation warning.

Contracts Changed

  • yes
  • no

Regeneration Required

  • yes
  • no

Validation

  • ESLint runs without deprecation warning
  • Config behavior unchanged

Summary by CodeRabbit

  • New Features
    • Expanded GraphQL schema with new scalars (Date, Long, Time) and comprehensive filtering capabilities
    • Added support for new content components and entity types with advanced pagination and sorting
    • Enhanced user and role management with improved access controls
    • Extended file upload handling with additional metadata and query options
    • Improved internationalization support for localized content

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 17, 2026

Warning

Rate limit exceeded

@tataihono has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 10 minutes and 37 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Walkthrough

The PR reorganizes the packages/contracts directory structure by relocating schema.graphql from a nested graphql subdirectory to the root level. All references to this file are updated across configuration and validation scripts. Additionally, the ESLint configuration is updated to address deprecation by replacing tseslint.config with defineConfig from eslint/config, and ignore patterns are adjusted across multiple configuration files.

Changes

Cohort / File(s) Summary
Configuration & Ignore Pattern Updates
.prettierignore, eslint.config.mjs
Added packages/contracts to ignore lists; replaced deprecated tseslint.config() with defineConfig() from eslint/config.
Path Resolution Updates
apps/cms/config/plugins.ts, packages/contracts/README.md, packages/contracts/package.json, packages/contracts/scripts/validate-contracts.mjs
Updated all references to GraphQL schema file location from nested graphql/schema.graphql to root-level schema.graphql; adjusted path resolution depth in CMS plugin configuration.
GraphQL Schema
packages/contracts/schema.graphql
Introduced generated header; added new scalars (Date, Long, Time) with corresponding filter inputs; expanded component types (Cta, InfoBlock, InfoBlocks, MediaCollection, PromoBanner) with comprehensive filters and inputs; enhanced global content types (Experience, I18NLocale, UploadFile, UsersPermissions, Video) with entity wrappers and extended filter/input variants; broadened Query/Mutation surface with additional endpoints and relationship support.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (3 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title claims to fix tseslint.config deprecation, but the changeset includes extensive GraphQL schema changes and project restructuring unrelated to this objective. Align title with all significant changes (e.g., 'chore: restructure contracts directory and update GraphQL schema') or move GraphQL/restructuring changes to a separate PR.
Linked Issues check ⚠️ Warning While the ESLint deprecation fix in eslint.config.mjs meets issue #50 requirements, the PR includes major schema changes and project restructuring not mentioned in any linked issue. Either link the relevant issues covering GraphQL schema changes and directory restructuring, or move those changes to separate PRs aligned with their respective issue requirements.
Out of Scope Changes check ⚠️ Warning The PR contains significant out-of-scope changes: moving packages/contracts to ignored paths, restructuring GraphQL schema generation paths, and substantial schema.graphql modifications unrelated to issue #50's ESLint deprecation fix. Separate the ESLint deprecation fix (eslint.config.mjs only) from the contracts restructuring and schema changes into distinct PRs with appropriate issue linkage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/50-tseslint-deprecation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
eslint.config.mjs (1)

8-15: ⚠️ Potential issue | 🟠 Major

Ignore list doesn’t cover the generated contracts path.

Line 10 only ignores packages/contracts/**, but the new GraphQL artifacts live under apps/packages/contracts/..., so ESLint still lint-checks generated output. Either relocate the contracts package to packages/contracts or add an explicit ignore for the current path.

🛠️ Suggested ignore update (if keeping current path)
   {
     ignores: [
       "packages/clients/**",
       "packages/contracts/**",
+      "apps/packages/contracts/**",
       "**/dist/**",
       "**/build/**",
Based on learnings "Place GraphQL/OpenAPI contracts in `packages/contracts`".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@eslint.config.mjs` around lines 8 - 15, The ESLint ignore list currently only
has "packages/contracts/**" so generated GraphQL artifacts under the actual path
"apps/packages/contracts/**" are still linted; update the ignores array in
eslint.config.mjs to include the current generated-contracts path (e.g., add
"apps/packages/contracts/**" or a broader pattern like
"**/apps/packages/contracts/**") OR relocate the contracts package into
"packages/contracts" so the existing "packages/contracts/**" pattern catches it;
modify the "ignores" entry (referencing the ignores array and the existing
"packages/contracts/**" pattern) accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/packages/contracts/graphql/generated-types.ts`:
- Around line 576-579: The generated NexusGenEnums contains PublicationStatus
with lowercase values ("draft" | "published") that don't match the GraphQL
schema's enum tokens (DRAFT | PUBLISHED); update the generated types so
PublicationStatus uses the exact schema casing (e.g., "DRAFT" | "PUBLISHED") by
regenerating the types from the canonical schema or adjusting the
generator/config so enum casing is preserved; locate NexusGenEnums ->
PublicationStatus in generated-types.ts and ensure the enum literal strings
match the schema tokens exactly.

---

Outside diff comments:
In `@eslint.config.mjs`:
- Around line 8-15: The ESLint ignore list currently only has
"packages/contracts/**" so generated GraphQL artifacts under the actual path
"apps/packages/contracts/**" are still linted; update the ignores array in
eslint.config.mjs to include the current generated-contracts path (e.g., add
"apps/packages/contracts/**" or a broader pattern like
"**/apps/packages/contracts/**") OR relocate the contracts package into
"packages/contracts" so the existing "packages/contracts/**" pattern catches it;
modify the "ignores" entry (referencing the ignores array and the existing
"packages/contracts/**" pattern) accordingly.

Comment thread apps/packages/contracts/graphql/generated-types.ts Outdated
…/config

Co-authored-by: Cursor <cursoragent@cursor.com>
@tataihono tataihono force-pushed the fix/50-tseslint-deprecation branch from a64103e to b61da6f Compare February 18, 2026 02:29
@tataihono tataihono merged commit a0b9e54 into main Feb 18, 2026
10 checks passed
@tataihono tataihono deleted the fix/50-tseslint-deprecation branch February 18, 2026 02:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(tooling): fix tseslint.config deprecation

1 participant