Skip to content

Migrate to ESLint 9 - Configuration#6822

Draft
gonzaloriestra wants to merge 1 commit intomainfrom
eslint-9-configuration
Draft

Migrate to ESLint 9 - Configuration#6822
gonzaloriestra wants to merge 1 commit intomainfrom
eslint-9-configuration

Conversation

@gonzaloriestra
Copy link
Contributor

@gonzaloriestra gonzaloriestra commented Feb 5, 2026

WHY are these changes introduced?

ESLint 8 has reached end of life and the ecosystem has moved to ESLint 9 with its new "flat config" format. More info here: https://eslint.org/docs/latest/use/migrate-to-9.0.0

This migration is necessary to:

  • Stay on supported tooling with security updates
  • Unblock dependency updates that require ESLint 9
  • Adopt the simpler flat config format that replaces the complex cascading .eslintrc.* configuration
  • Update to @typescript-eslint v8 which includes improved type checking and drops deprecated rules like ban-types

WHAT is this pull request doing?

This PR is focused on the configuration changes, what's important to review. And the next one fixes all the broken lint issues.

Configuration Migration:

  • Migrates from .eslintrc.cjs to eslint.config.js (flat config format)
  • Deletes .eslintignore (ignores are now defined inline in the config)
  • Updates @shopify/eslint-plugin-cli to export flat config

Plugin Updates:

  • eslint: 8.x → 9.x
  • @typescript-eslint/*: 7.x → 8.x
  • @shopify/eslint-plugin: → 50.0.0 (flat config compatible)
  • eslint-plugin-importeslint-plugin-import-x (ESM compatible replacement)
  • eslint-plugin-nodeeslint-plugin-n (maintained fork, node/n/ prefix)
  • eslint-plugin-vitest@vitest/eslint-plugin

How to test your changes?

CI

Measuring impact

How do we know this change was effective? Please choose one:

  • n/a - this doesn't need measurement, e.g. a linting rule or a bug-fix
  • Existing analytics will cater for this addition
  • PR includes analytics changes to measure impact

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes

Copy link
Contributor Author

gonzaloriestra commented Feb 5, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@gonzaloriestra gonzaloriestra mentioned this pull request Feb 5, 2026
5 tasks
@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

Coverage report

St.
Category Percentage Covered / Total
🟡 Statements
79.63% (+0.4% 🔼)
14466/18167
🟡 Branches
73.95% (+0.84% 🔼)
7177/9705
🟡 Functions
79.8% (+0.43% 🔼)
3689/4623
🟡 Lines
79.98% (+0.4% 🔼)
13676/17099
Show new covered files 🐣
St.
File Statements Branches Functions Lines
🟢
... / admin-as-app.ts
100% 100% 100% 100%
🟢
... / metafield_definitions.ts
100% 100% 100% 100%
🟢
... / metaobject_definitions.ts
100% 100% 100% 100%
🟢
... / bulk-operation-cancel.ts
100% 100% 100% 100%
🟢
... / bulk-operation-run-mutation.ts
100% 100% 100% 100%
🟢
... / bulk-operation-run-query.ts
100% 100% 100% 100%
🟢
... / get-bulk-operation-by-id.ts
100% 100% 100% 100%
🟢
... / list-bulk-operations.ts
100% 100% 100% 100%
🟢
... / staged-uploads-create.ts
100% 100% 100% 100%
🟢
... / fetch_store_by_domain.ts
100% 100% 100% 100%
🟢
... / organization_exp_flags.ts
100% 100% 100% 100%
🔴
... / import-custom-data-definitions.ts
0% 100% 0% 0%
🔴
... / cancel.ts
0% 100% 0% 0%
🔴
... / execute.ts
0% 0% 0% 0%
🔴
... / status.ts
0% 0% 0% 0%
🔴
... / pull.ts
0% 100% 0% 0%
🟡
... / execute-operation.ts
75.68% 50% 100% 75.68%
🔴
... / pull.ts
0% 0% 0% 0%
🟢
... / bulk-operation-status.ts
96.55% 92.11% 100% 100%
🟢
... / cancel-bulk-operation.ts
100% 100% 100% 100%
🟢
... / constants.ts
100% 100% 100% 100%
🟢
... / download-bulk-operation-results.ts
100% 100% 100% 100%
🟢
... / execute-bulk-operation.ts
87.14% 83.67% 100% 88.41%
🟢
... / format-bulk-operation-status.ts
100% 100% 100% 100%
🟢
... / run-mutation.ts
100% 100% 100% 100%
🟢
... / run-query.ts
100% 100% 100% 100%
🟡
... / stage-file.ts
73.53% 62.5% 85.71% 72.73%
🟢
... / watch-bulk-operation.ts
100% 94.74% 100% 100%
🟢
... / utilities.ts
100% 100% 100% 100%
🟢
... / declarative-definitions.ts
98.54% 93.18% 100% 98.51%
🟢
... / common.ts
97.62% 95% 100% 97.06%
🟢
... / execute-command-helpers.ts
100% 100% 100% 100%
🟢
... / file-formatter.ts
100% 100% 100% 100%
🔴
... / promiseWithResolvers.ts
33.33% 50% 50% 33.33%
🟢
... / theme-listing.ts
100% 100% 100% 100%
Show files with reduced coverage 🔻
St.
File Statements Branches Functions Lines
🔴
... / execute.ts
0%
0% (-100% 🔻)
0% 0%
🟢
... / loader.ts
94.06% (+0.2% 🔼)
86.41% (-0.42% 🔻)
97.17% (+0.11% 🔼)
94.85% (+0.18% 🔼)
🟢
... / extension-instance.ts
84.8% (+0.23% 🔼)
77.6% (-0.91% 🔻)
92.06% (+0.13% 🔼)
85.11% (+0.24% 🔼)
🟡
... / specification.ts
69.64% (+0.55% 🔼)
75.61% (+2.44% 🔼)
76.47% (-1.31% 🔻)
69.39% (+0.64% 🔼)
🟢
... / ui_extension.ts
88.61% (-6.22% 🔻)
78.57% (-2.68% 🔻)
85.19% (-14.81% 🔻)
90.79% (-5.67% 🔻)
🟡
... / dev.ts
80% (-1.97% 🔻)
70% (-1.43% 🔻)
76.19% (-3.81% 🔻)
77.97% (-2.03% 🔻)
🟢
... / store-context.ts
100%
82.35% (-0.98% 🔻)
100% 100%
🟢
... / Logs.tsx
90%
90.91% (-5.97% 🔻)
100% 90%
🟢
... / fetch.ts
84.21% (+0.88% 🔼)
82.35% (-0.98% 🔻)
75%
85.29% (+1.42% 🔼)
🟡
... / select-app.ts
63.33% (-24.17% 🔻)
50% (-20% 🔻)
100%
64.29% (-29.05% 🔻)
🟢
... / app-event-watcher-handler.ts
86.36% (-4.11% 🔻)
75% 86.67%
85.71% (-5.19% 🔻)
🟡
... / middlewares.ts
77.33% (-0.87% 🔻)
75%
68.42% (-1.58% 🔻)
76.39% (-0.94% 🔻)
🔴
... / server.ts
1.23% (-0.02% 🔻)
0% 0%
1.3% (-0.02% 🔻)
🟢
... / setup-dev-processes.ts
93.62% (+0.14% 🔼)
66.67% (-4.76% 🔻)
90%
92.86% (+0.17% 🔼)
🟢
... / bundle.ts
93.22%
63.33% (-3.33% 🔻)
94.12% (+5.88% 🔼)
96.3%
🟢
... / developer-platform-client.ts
84.62% (-1.5% 🔻)
71.43% (+0.84% 🔼)
81.82% (+1.82% 🔼)
93.75% (+0.42% 🔼)
🔴
... / http-reverse-proxy.ts
58.97% (-4.91% 🔻)
37.04% (-2.96% 🔻)
58.33% (-5.3% 🔻)
59.46% (-5.25% 🔻)
🟢
... / api.ts
87.07% (-0.43% 🔻)
76.71% (-0.1% 🔻)
100%
86.49% (-0.43% 🔻)
🟢
... / device-authorization.ts
88.24% (-0.83% 🔻)
76.47% (-2.94% 🔻)
100%
88.24% (-0.83% 🔻)
🟢
... / SingleTask.tsx
84.21% (-15.79% 🔻)
50% (-50% 🔻)
80% (-20% 🔻)
84.21% (-15.79% 🔻)
🔴
... / environment.ts
35% (-5% 🔻)
41.18%
40% (-10% 🔻)
36.84% (-5.26% 🔻)
🔴
... / ui.tsx
49.21% (-2.41% 🔻)
40% (-8.39% 🔻)
54.55% (+1.42% 🔼)
48.39% (-2.43% 🔻)
🟢
... / fqdn.ts
93.62% (-1.94% 🔻)
88% (-3.3% 🔻)
100%
93.62% (-1.94% 🔻)
🟢
... / console.ts
81.82% (+15.15% 🔼)
75% (-25% 🔻)
100% (+33.33% 🔼)
81.82% (+15.15% 🔼)
🟢
... / init.ts
88% (-0.89% 🔻)
71.43% (+4.76% 🔼)
86.67% (+4.85% 🔼)
88% (-0.89% 🔻)
🟢
... / storefront-renderer.ts
90.2% (-0.54% 🔻)
78.95%
81.82% (-1.52% 🔻)
90.2% (-0.54% 🔻)
🟡
... / theme-polling.ts
67.57% (-0.49% 🔻)
68.75% 78.57%
66.18% (-1.47% 🔻)

Test suite run success

3718 tests passing in 1438 suites.

Report generated by 🧪jest coverage report action from e954f9b

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.

1 participant