eslint-plugin-graphql icon indicating copy to clipboard operation
eslint-plugin-graphql copied to clipboard

Support Relay __id

Open liamqma opened this issue 4 years ago • 2 comments
trafficstars

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 🙂

liamqma avatar Oct 18 '21 23:10 liamqma

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

rbalicki2 avatar Feb 14 '24 20:02 rbalicki2

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!

jerelmiller avatar Feb 14 '24 23:02 jerelmiller