Releases: dimaMachina/graphql-eslint
@graphql-eslint/[email protected]
Minor Changes
- 6f8c3b6: fix: find graphqlrc files relative to linted file
@graphql-eslint/[email protected]
Minor Changes
- 624d604: fix: ignore root types in
strict-id-in-types
rule
@graphql-eslint/[email protected]
Minor Changes
- cc9a561: feat: ignore fragments in
require-id-when-available
rule
@graphql-eslint/[email protected]
Minor Changes
- 75ec7d1: fix false positive case in
possible-type-extension
rule when schema is separate into multiple files
@graphql-eslint/[email protected]
@graphql-eslint/[email protected]
@graphql-eslint/[email protected]
@graphql-eslint/[email protected]
@graphql-eslint/[email protected]
Major Changes
-
a69f0be: ❗ BREAKING CHANGE ❗
Split
recommended
config to 2 modes: "schema" and "operations".This was done in order to use
recommended
andall
configs inschema-only
projects where it is not possible to provide operations.recommended
andall
configs were divided to 4 configs:schema-recommended
- enables recommended rules for schema (SDL) developmentschema-all
- enables all rules for schema (SDL) developmentoperations-recommended
- enables recommended rules for consuming GraphQL (operations) developmentoperations-all
- enables all rules for consuming GraphQL (operations) development
If you are migrating from v2 where
recommended
was introduced, please change the following:{ "overrides": [ { "files": ["*.js"], "processor": "@graphql-eslint/graphql" }, { "files": ["*.graphql"], - "extends": "plugin:@graphql-eslint/recommended" + "extends": "plugin:@graphql-eslint/schema-recommended" } ] }
If you are in a project that develops the GraphQL schema, you'll need
schema
rules.If you are in a project that develops GraphQL operations (query/mutation/subscription), you'll need
operations
rules.If you are in a monorepo project, you probably need both sets of rules.
-
a69f0be: ❗ BREAKING CHANGE ❗
feat:
description-style
now have default description styleblock
. -
a69f0be: ❗ BREAKING CHANGE ❗
feat: remove
query
option inno-root-type
as it's impossible to have write-only schema. -
a69f0be: ❗ BREAKING CHANGE ❗
- rename
avoid
prefix in rules tono
. - remove
avoid-operation-name-prefix
andno-operation-name-suffix
All rules that had a
avoid
prefix now have ano
prefix.Rules
avoid-operation-name-prefix
andno-operation-name-suffix
were removed because the same things can be validated bynaming-convention
rule.Before
{ "@graphql-eslint/avoid-operation-name-prefix": [ "error", { "keywords": ["Query", "Mutation", "Subscription", "Get"] } ], "@graphql-eslint/no-operation-name-suffix": "error" }
After
{ "@graphql-eslint/naming-convention": [ "error", { "OperationDefinition": { "style": "PascalCase", "forbiddenPrefixes": ["Query", "Mutation", "Subscription", "Get"], "forbiddenSuffixes": ["Query", "Mutation", "Subscription"] } } ] }
- rename
-
a69f0be: ❗ BREAKING CHANGE ❗
feat: add new options for
naming-convention
ruleOptions for
naming-convention
are changed. New optiontypes
includes the following kinds:ObjectTypeDefinition
InterfaceTypeDefinition
EnumTypeDefinition
ScalarTypeDefinition
InputObjectTypeDefinition
UnionTypeDefinition
Added new options:
Argument
DirectiveDefinition
VariableDefinition
Option
QueryDefinition
was removed in favor ofAST
specific selectorFieldDefinition[parent.name.value=Query]
.Before
{ "@graphql-eslint/naming-convention": [ "error", { "ObjectTypeDefinition": "PascalCase", "InterfaceTypeDefinition": "PascalCase", "EnumTypeDefinition": "PascalCase", "ScalarTypeDefinition": "PascalCase", "InputObjectTypeDefinition": "PascalCase", "UnionTypeDefinition": "PascalCase", "FieldDefinition": "camelCase", "InputValueDefinition": "camelCase", "QueryDefinition": { "forbiddenPrefixes": ["get"] }, "leadingUnderscore": "allow", "trailingUnderscore": "allow" } ] }
After
{ "@graphql-eslint/naming-convention": [ "error", { "types": "PascalCase", "FieldDefinition": "camelCase", "InputValueDefinition": "camelCase", "FieldDefinition[parent.name.value=Query]": { "forbiddenPrefixes": ["get"] }, "allowLeadingUnderscore": true, "allowTrailingUnderscore": true } ] }
-
a69f0be: ❗ BREAKING CHANGE ❗
feat: add new options for
require-description
ruleOptions for
require-description
are changed. New optiontypes
includes the following kinds:ObjectTypeDefinition
InterfaceTypeDefinition
EnumTypeDefinition
ScalarTypeDefinition
(new in v3)InputObjectTypeDefinition
UnionTypeDefinition
Before
{ "@graphql-eslint/require-description": [ "error", { "on": [ "ObjectTypeDefinition", "InterfaceTypeDefinition", "EnumTypeDefinition", "InputObjectTypeDefinition", "UnionTypeDefinition", "FieldDefinition", "InputValueDefinition", "EnumValueDefinition", "DirectiveDefinition" ] } ] }
After
{ "@graphql-eslint/require-description": [ "error", { "types": true, "FieldDefinition": true, "InputValueDefinition": true, "EnumValueDefinition": true, "DirectiveDefinition": true } ] }
@graphql-eslint/[email protected]
Minor Changes
- 64c302c: feat: add new rule
no-root-type
- c837c99: fix false positive case in
no-unreachable-types
rule when directive on root schema is used - 1914d6a: fix false positive case in
known-fragment-names
when import nested fragment
Patch Changes
- 4c29de7: fix: make works graphql-eslint in yarn berry