apollographql / eslint-plugin-graphql

:vertical_traffic_light: Check your GraphQL query strings against a schema.
https://www.npmjs.com/package/eslint-plugin-graphql
1.21k stars 103 forks source link

Support Relay __id #316

Open liamqma opened 2 years ago

liamqma commented 2 years ago

Hi 👋,

I have the below Relay GraphQL query:

fragment expandedCard on Board {
      __id // Cannot query field "__id" on type "Board".eslint(graphql/template-strings)
}

However, ESLint rule graphql/template-strings complains about "FieldsOnCorrectType" because id does not exist in the schema. However, The id field is NOT something that GraphQL API needs to expose. Instead, it's an identifier that Relay automatically adds to identify the connection record. I guess it's valid for anyone who uses Relay. See this example.

After reading a few Github threads, I notice that __id is in the considering of being added to GraphQL spec but there is no consensus yet.

As a workaround, I can remove 'FieldsOnCorrectType' from the validators for Relay and build a custom ESLint rule for it. Just wondering if you can think of any other work around. Thanks 🙂

rbalicki2 commented 4 months ago

I am running into this issue as well. Is there a way to suppress this lint for a given field?

jerelmiller commented 4 months ago

Hey @rbalicki2 👋

Unfortunately we are deprecating this library as its largely gone unmaintained in recent years. We are recommending the switch to graphql-eslint since its much more maintained and fully featured at this point. Apologies we haven't actually gone through the motions to archive this repo and deprecate in npm!