Remove the ESLint compatibility layer - #8211
Draft
gonzaloriestra wants to merge 1 commit into
Draft
Conversation
This was referenced Jul 30, 2026
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Contributor
Differences in type declarationsWe detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:
New type declarationsWe found no new type declarations in this PR Existing type declarationspackages/cli-kit/dist/cli/api/graphql/admin/generated/find_development_theme_by_name.d.ts@@ -5,12 +5,12 @@ export type FindDevelopmentThemeByNameQueryVariables = Types.Exact<{
}>;
export type FindDevelopmentThemeByNameQuery = {
themes?: {
- nodes: {
+ nodes: Array<{
id: string;
name: string;
role: Types.ThemeRole;
processing: boolean;
- }[];
+ }>;
} | null;
};
export declare const FindDevelopmentThemeByName: DocumentNode<FindDevelopmentThemeByNameQuery, FindDevelopmentThemeByNameQueryVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/get_theme_file_bodies.d.ts@@ -3,12 +3,12 @@ import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/
export type GetThemeFileBodiesQueryVariables = Types.Exact<{
id: Types.Scalars['ID']['input'];
after?: Types.InputMaybe<Types.Scalars['String']['input']>;
- filenames?: Types.InputMaybe<Types.Scalars['String']['input'][] | Types.Scalars['String']['input']>;
+ filenames?: Types.InputMaybe<Array<Types.Scalars['String']['input']> | Types.Scalars['String']['input']>;
}>;
export type GetThemeFileBodiesQuery = {
theme?: {
files?: {
- nodes: {
+ nodes: Array<{
filename: string;
size: unknown;
checksumMd5?: string | null;
@@ -22,11 +22,11 @@ export type GetThemeFileBodiesQuery = {
__typename: 'OnlineStoreThemeFileBodyUrl';
url: string;
};
- }[];
- userErrors: {
+ }>;
+ userErrors: Array<{
filename: string;
code: Types.OnlineStoreThemeFileResultType;
- }[];
+ }>;
pageInfo: {
hasNextPage: boolean;
endCursor?: string | null;
packages/cli-kit/dist/cli/api/graphql/admin/generated/get_theme_file_checksums.d.ts@@ -7,15 +7,15 @@ export type GetThemeFileChecksumsQueryVariables = Types.Exact<{
export type GetThemeFileChecksumsQuery = {
theme?: {
files?: {
- nodes: {
+ nodes: Array<{
filename: string;
size: unknown;
checksumMd5?: string | null;
- }[];
- userErrors: {
+ }>;
+ userErrors: Array<{
filename: string;
code: Types.OnlineStoreThemeFileResultType;
- }[];
+ }>;
pageInfo: {
hasNextPage: boolean;
endCursor?: string | null;
packages/cli-kit/dist/cli/api/graphql/admin/generated/get_themes.d.ts@@ -5,12 +5,12 @@ export type GetThemesQueryVariables = Types.Exact<{
}>;
export type GetThemesQuery = {
themes?: {
- nodes: {
+ nodes: Array<{
id: string;
name: string;
role: Types.ThemeRole;
processing: boolean;
- }[];
+ }>;
pageInfo: {
hasNextPage: boolean;
endCursor?: string | null;
packages/cli-kit/dist/cli/api/graphql/admin/generated/metafield_definitions_by_owner_type.d.ts@@ -5,7 +5,7 @@ export type MetafieldDefinitionsByOwnerTypeQueryVariables = Types.Exact<{
}>;
export type MetafieldDefinitionsByOwnerTypeQuery = {
metafieldDefinitions: {
- nodes: {
+ nodes: Array<{
key: string;
name: string;
namespace: string;
@@ -14,7 +14,7 @@ export type MetafieldDefinitionsByOwnerTypeQuery = {
category: string;
name: string;
};
- }[];
+ }>;
};
};
export declare const MetafieldDefinitionsByOwnerType: DocumentNode<MetafieldDefinitionsByOwnerTypeQuery, MetafieldDefinitionsByOwnerTypeQueryVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/public_api_versions.d.ts@@ -4,9 +4,9 @@ export type PublicApiVersionsQueryVariables = Types.Exact<{
[key: string]: never;
}>;
export type PublicApiVersionsQuery = {
- publicApiVersions: {
+ publicApiVersions: Array<{
handle: string;
supported: boolean;
- }[];
+ }>;
};
export declare const PublicApiVersions: DocumentNode<PublicApiVersionsQuery, PublicApiVersionsQueryVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/theme_create.d.ts@@ -12,10 +12,10 @@ export type ThemeCreateMutation = {
name: string;
role: Types.ThemeRole;
} | null;
- userErrors: {
- field?: string[] | null;
+ userErrors: Array<{
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const ThemeCreate: DocumentNode<ThemeCreateMutation, ThemeCreateMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/theme_delete.d.ts@@ -6,10 +6,10 @@ export type ThemeDeleteMutationVariables = Types.Exact<{
export type ThemeDeleteMutation = {
themeDelete?: {
deletedThemeId?: string | null;
- userErrors: {
- field?: string[] | null;
+ userErrors: Array<{
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const ThemeDelete: DocumentNode<ThemeDeleteMutation, ThemeDeleteMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/theme_duplicate.d.ts@@ -11,10 +11,10 @@ export type ThemeDuplicateMutation = {
name: string;
role: Types.ThemeRole;
} | null;
- userErrors: {
- field?: string[] | null;
+ userErrors: Array<{
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const ThemeDuplicate: DocumentNode<ThemeDuplicateMutation, ThemeDuplicateMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/theme_files_delete.d.ts@@ -2,18 +2,18 @@ import * as Types from './types.js';
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
export type ThemeFilesDeleteMutationVariables = Types.Exact<{
themeId: Types.Scalars['ID']['input'];
- files: Types.Scalars['String']['input'][] | Types.Scalars['String']['input'];
+ files: Array<Types.Scalars['String']['input']> | Types.Scalars['String']['input'];
}>;
export type ThemeFilesDeleteMutation = {
themeFilesDelete?: {
- deletedThemeFiles?: {
+ deletedThemeFiles?: Array<{
filename: string;
- }[] | null;
- userErrors: {
+ }> | null;
+ userErrors: Array<{
filename?: string | null;
code?: Types.OnlineStoreThemeFilesUserErrorsCode | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const ThemeFilesDelete: DocumentNode<ThemeFilesDeleteMutation, ThemeFilesDeleteMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/theme_files_upsert.d.ts@@ -1,18 +1,18 @@
import * as Types from './types.js';
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
export type ThemeFilesUpsertMutationVariables = Types.Exact<{
- files: Types.OnlineStoreThemeFilesUpsertFileInput[] | Types.OnlineStoreThemeFilesUpsertFileInput;
+ files: Array<Types.OnlineStoreThemeFilesUpsertFileInput> | Types.OnlineStoreThemeFilesUpsertFileInput;
themeId: Types.Scalars['ID']['input'];
}>;
export type ThemeFilesUpsertMutation = {
themeFilesUpsert?: {
- upsertedThemeFiles?: {
+ upsertedThemeFiles?: Array<{
filename: string;
- }[] | null;
- userErrors: {
+ }> | null;
+ userErrors: Array<{
filename?: string | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const ThemeFilesUpsert: DocumentNode<ThemeFilesUpsertMutation, ThemeFilesUpsertMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/theme_publish.d.ts@@ -10,10 +10,10 @@ export type ThemePublishMutation = {
name: string;
role: Types.ThemeRole;
} | null;
- userErrors: {
- field?: string[] | null;
+ userErrors: Array<{
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const ThemePublish: DocumentNode<ThemePublishMutation, ThemePublishMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/admin/generated/theme_update.d.ts@@ -11,10 +11,10 @@ export type ThemeUpdateMutation = {
name: string;
role: Types.ThemeRole;
} | null;
- userErrors: {
- field?: string[] | null;
+ userErrors: Array<{
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const ThemeUpdate: DocumentNode<ThemeUpdateMutation, ThemeUpdateMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/bulk-operations/generated/bulk-operation-cancel.d.ts@@ -19,10 +19,10 @@ export type BulkOperationCancelMutation = {
type: Types.BulkOperationType;
url?: string | null;
} | null;
- userErrors: {
- field?: string[] | null;
+ userErrors: Array<{
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const BulkOperationCancel: DocumentNode<BulkOperationCancelMutation, BulkOperationCancelMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/bulk-operations/generated/bulk-operation-run-mutation.d.ts@@ -18,11 +18,11 @@ export type BulkOperationRunMutationMutation = {
status: Types.BulkOperationStatus;
url?: string | null;
} | null;
- userErrors: {
+ userErrors: Array<{
code?: Types.BulkMutationErrorCode | null;
- field?: string[] | null;
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const BulkOperationRunMutation: DocumentNode<BulkOperationRunMutationMutation, BulkOperationRunMutationMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/bulk-operations/generated/bulk-operation-run-query.d.ts@@ -16,11 +16,11 @@ export type BulkOperationRunQueryMutation = {
status: Types.BulkOperationStatus;
url?: string | null;
} | null;
- userErrors: {
+ userErrors: Array<{
code?: Types.BulkOperationUserErrorCode | null;
- field?: string[] | null;
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const BulkOperationRunQuery: DocumentNode<BulkOperationRunQueryMutation, BulkOperationRunQueryMutationVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/bulk-operations/generated/list-bulk-operations.d.ts@@ -7,7 +7,7 @@ export type ListBulkOperationsQueryVariables = Types.Exact<{
}>;
export type ListBulkOperationsQuery = {
bulkOperations: {
- nodes: {
+ nodes: Array<{
id: string;
status: Types.BulkOperationStatus;
errorCode?: Types.BulkOperationErrorCode | null;
@@ -16,7 +16,7 @@ export type ListBulkOperationsQuery = {
completedAt?: unknown | null;
url?: string | null;
partialDataUrl?: string | null;
- }[];
+ }>;
};
};
export declare const ListBulkOperations: DocumentNode<ListBulkOperationsQuery, ListBulkOperationsQueryVariables>;
\ No newline at end of file
packages/cli-kit/dist/cli/api/graphql/bulk-operations/generated/staged-uploads-create.d.ts@@ -1,22 +1,22 @@
import * as Types from './types.js';
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
export type StagedUploadsCreateMutationVariables = Types.Exact<{
- input: Types.StagedUploadInput[] | Types.StagedUploadInput;
+ input: Array<Types.StagedUploadInput> | Types.StagedUploadInput;
}>;
export type StagedUploadsCreateMutation = {
stagedUploadsCreate?: {
- stagedTargets?: {
+ stagedTargets?: Array<{
url?: string | null;
resourceUrl?: string | null;
- parameters: {
+ parameters: Array<{
name: string;
value: string;
- }[];
- }[] | null;
- userErrors: {
- field?: string[] | null;
+ }>;
+ }> | null;
+ userErrors: Array<{
+ field?: Array<string> | null;
message: string;
- }[];
+ }>;
} | null;
};
export declare const StagedUploadsCreate: DocumentNode<StagedUploadsCreateMutation, StagedUploadsCreateMutationVariables>;
\ No newline at end of file
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

WHY are these changes introduced?
The preceding PRs make Oxlint the primary linter and close the rule-parity gaps we can preserve. Keeping ESLint as a compatibility pass after that point retains most of its dependency and runtime cost.
Measured on warm macOS arm64 runs across the full stack:
WHAT is this pull request doing?
This intentionally drops rules Oxlint cannot currently enforce, notably Nx module boundaries, some JSDoc checks, naming/member ordering, import ordering, and deprecated stylistic rules. The earlier stack layers preserve the supported correctness, type-aware, Vitest, promise, and CLI-specific rules.
No changeset is included because this changes internal development tooling rather than shipped CLI behavior.
How to test your changes?
pnpm install --frozen-lockfilepnpm lintpnpm type-checkpnpm knippnpm testpnpm graphql-codegentwice and confirm the second run leaves no additional diff.Local validation passed 5,000 tests across 504 test files, with one skipped test. Two consecutive GraphQL codegen runs produced identical output.
Checklist