Open ikesyo opened 2 years ago
Not working with error Rule
require-id-when-availablerequires
parserOptions.operations, my config
{
"files": [".ts"],
"processor": "@graphql-eslint/graphql"
},
{
"files": [".graphql"],
"extends": "plugin:@graphql-eslint/operations-recommended",
"rules": {
"@graphql-eslint/known-type-names": "error"
},
"parserOptions": {
"operations": "./src/*/.graphql"
],
"schema": "./remote-schema.graphql"
}
}`
Hi @milashkaJason, does your issue related to require-id-when-available
? Can you give more context or maybe make a reproduction repo?
I got the same issue and I finally get it work by disabling the rules
'@graphql-eslint/require-id-when-available': 'off',
'@graphql-eslint/no-unused-fragments': 'off',
The problem was in the parameter parserOptions: { operations}, because it interfered .graphqlconfig
I'm posting the reproduction here instead of reopening https://github.com/dimaMachina/graphql-eslint/issues/1159. To reproduce, go to the playground and enter in operation.graphql
:
# eslint @graphql-eslint/require-id-when-available: ["error", { fieldName: ["id", "__typename"] }]
query Q {
posts {
id
title
}
}
Or ["id", "createdAt"]
. The code should be invalid, since only id
is included in the selection and __typename
/createdAt
isn't.
Is your feature request related to a problem? Please describe. When using the
require-id-when-available
rule with passing an array of field names, the rule passes if one of the field names exists in the selection set. I want that all of them should exist in the selection set (all given fields are required if the fields are defined on a type).Describe the solution you'd like
Add configuration option which treating the given fields as all required.
Describe alternatives you've considered
Additional context
Migration from
apollographql/eslint-plugin-graphql
'srequired-fields
rule (migration tographql-eslint
is suggested in the README). That rule's behavior is desirable for us.