1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7308],{56675:function(e,s,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/rules/require-id-when-available",function(){return n(56146)}])},56146:function(e,s,n){"use strict";n.r(s);var l=n(39324),r=n(71209),i=n(35250),a=n(16913),c=n(47160);function h(e){var s=Object.assign({h1:"h1",code:"code",p:"p",a:"a",ul:"ul",li:"li",h2:"h2",h3:"h3",pre:"pre",span:"span",hr:"hr"},(0,c.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h1,{children:(0,i.jsx)(s.code,{children:"require-id-when-available"})}),"\n",(0,i.jsxs)(s.p,{children:["â
The ",(0,i.jsx)(s.code,{children:'"extends": "plugin:@graphql-eslint/operations-recommended"'})," property in a configuration file\nenables this rule."]}),"\n",(0,i.jsxs)(s.p,{children:["\uD83D\uDCA1 This rule provides\n",(0,i.jsx)(s.a,{href:"https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions",children:"suggestions"})]}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["Category: ",(0,i.jsx)(s.code,{children:"Operations"})]}),"\n",(0,i.jsxs)(s.li,{children:["Rule name: ",(0,i.jsx)(s.code,{children:"@graphql-eslint/require-id-when-available"})]}),"\n",(0,i.jsxs)(s.li,{children:["Requires GraphQL Schema: ",(0,i.jsx)(s.code,{children:"true"}),"\n",(0,i.jsx)(s.a,{href:"/docs/getting-started#extended-linting-rules-with-graphql-schema",children:"â¹ï¸"})]}),"\n",(0,i.jsxs)(s.li,{children:["Requires GraphQL Operations: ",(0,i.jsx)(s.code,{children:"true"}),"\n",(0,i.jsx)(s.a,{href:"/docs/getting-started#extended-linting-rules-with-siblings-operations",children:"â¹ï¸"})]}),"\n"]}),"\n",(0,i.jsx)(s.p,{children:"Enforce selecting specific fields when they are available on the GraphQL type."}),"\n",(0,i.jsx)(s.h2,{id:"usage-examples",children:"Usage Examples"}),"\n",(0,i.jsx)(s.h3,{id:"incorrect",children:"Incorrect"}),"\n",(0,i.jsx)(s.pre,{"data-language":"graphql","data-theme":"default",hasCopyCode:!0,children:(0,i.jsxs)(s.code,{"data-language":"graphql","data-theme":"default",children:[(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"# eslint @graphql-eslint/require-id-when-available: 'error'"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:" "}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"# In your schema"})}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"type"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"User"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" id: "}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"ID"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"!"})]}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" name: "}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"String"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"!"})]}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:" "}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"# Query"})}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"query"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" user {"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" name"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" }"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,i.jsx)(s.h3,{id:"correct",children:"Correct"}),"\n",(0,i.jsx)(s.pre,{"data-language":"graphql","data-theme":"default",hasCopyCode:!0,children:(0,i.jsxs)(s.code,{"data-language":"graphql","data-theme":"default",children:[(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"# eslint @graphql-eslint/require-id-when-available: 'error'"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:" "}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"# In your schema"})}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"type"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"User"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" id: "}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"ID"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"!"})]}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" name: "}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-constant)"},children:"String"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"!"})]}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:" "}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"# Query"})}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"query"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" user {"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" id"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" name"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" }"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:" "}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-comment)"},children:"# Selecting `id` with an alias is also valid"})}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-keyword)"},children:"query"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" {"})]}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" user {"})}),"\n",(0,i.jsxs)(s.span,{className:"line",children:[(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-token-string)"},children:"id"}),(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:": name"})]}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:" }"})}),"\n",(0,i.jsx)(s.span,{className:"line",children:(0,i.jsx)(s.span,{style:{color:"var(--shiki-color-text)"},children:"}"})})]})}),"\n",(0,i.jsx)(s.h2,{id:"config-schema",children:"Config Schema"}),"\n",(0,i.jsx)(s.p,{children:"The schema defines the following properties:"}),"\n",(0,i.jsx)(s.h3,{id:"fieldname",children:(0,i.jsx)(s.code,{children:"fieldName"})}),"\n",(0,i.jsx)(s.p,{children:"The object must be one of the following types:"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.code,{children:"asString"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.code,{children:"asArray"})}),"\n"]}),"\n",(0,i.jsxs)(s.p,{children:["Default: ",(0,i.jsx)(s.code,{children:'"id"'})]}),"\n",(0,i.jsx)(s.hr,{}),"\n",(0,i.jsx)(s.h1,{children:"Sub Schemas"}),"\n",(0,i.jsx)(s.p,{children:"The schema defines the following additional types:"}),"\n",(0,i.jsxs)(s.h2,{id:"asstring-string",children:[(0,i.jsx)(s.code,{children:"asString"})," (string)"]}),"\n",(0,i.jsxs)(s.h2,{id:"asarray-array",children:[(0,i.jsx)(s.code,{children:"asArray"})," (array)"]}),"\n",(0,i.jsx)(s.h2,{id:"resources",children:"Resources"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/B2o5T/graphql-eslint/tree/master/packages/plugin/src/rules/require-id-when-available.ts",children:"Rule source"})}),"\n",(0,i.jsx)(s.li,{children:(0,i.jsx)(s.a,{href:"https://github.com/B2o5T/graphql-eslint/tree/master/packages/plugin/tests/require-id-when-available.spec.ts",children:"Test source"})}),"\n"]})]})}n(8850),s.default=(0,a.j)({MDXContent:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=Object.assign({},(0,c.ah)(),e.components).wrapper;return s?(0,i.jsx)(s,(0,r._)((0,l._)({},e),{children:(0,i.jsx)(h,(0,l._)({},e))})):h(e)},pageOpts:{filePath:"src/pages/rules/require-id-when-available.md",route:"/rules/require-id-when-available",headings:[{depth:1,value:"require-id-when-available",id:"require-id-when-available"},{depth:2,value:"Usage Examples",id:"usage-examples"},{depth:3,value:"Incorrect",id:"incorrect"},{depth:3,value:"Correct",id:"correct"},{depth:2,value:"Config Schema",id:"config-schema"},{depth:3,value:"fieldName",id:"fieldname"},{depth:1,value:"Sub Schemas",id:"sub-schemas"},{depth:2,value:"asString (string)",id:"asstring-string"},{depth:2,value:"asArray (array)",id:"asarray-array"},{depth:2,value:"Resources",id:"resources"}],timestamp:1673726257e3,title:"Sub Schemas"},pageNextRoute:"/rules/require-id-when-available"})}}
1,function(e){e.O(0,[6913,9774,2888,179],function(){return e(e.s=56675)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.