@@ -2174,20 +2174,17 @@ scalar UUID @specifiedBy(url: "https://tools.ietf.org/html/rfc4122")
2174
2174
SchemaCoordinate :
2175
2175
2176
2176
- TypeCoordinate
2177
- - FieldCoordinate
2177
+ - MemberCoordinate
2178
2178
- ArgumentCoordinate
2179
- - ValueCoordinate
2180
2179
- DirectiveCoordinate
2181
2180
- DirectiveArgumentCoordinate
2182
2181
2183
2182
TypeCoordinate : Name
2184
2183
2185
- FieldCoordinate : Name . Name
2184
+ MemberCoordinate : Name . Name
2186
2185
2187
2186
ArgumentCoordinate : Name . Name ( Name : )
2188
2187
2189
- ValueCoordinate : Name :: Name
2190
-
2191
2188
DirectiveCoordinate : @ Name
2192
2189
2193
2190
DirectiveArgumentCoordinate : @ Name ( Name : )
@@ -2198,16 +2195,6 @@ _schema element_ within a GraphQL Schema.
2198
2195
:: A _schema element_ can be a named type , a field , an input field , an enum
2199
2196
value , a field argument , a directive , or a directive argument .
2200
2197
2201
- :: The _containing element_ of a _schema element_ is the schema element with one
2202
- fewer {Name } token that syntactically contains it . For example :
2203
-
2204
- - The containing element of an {ArgumentCoordinate } or
2205
- {DirectiveArgumentCoordinate } is the corresponding {FieldCoordinate } or
2206
- {DirectiveCoordinate } respectively .
2207
- - The containing element of a {FieldCoordinate } or {ValueCoordinate } is its
2208
- containing {TypeCoordinate }.
2209
- - {TypeCoordinate } and {DirectiveCoordinate } have no containing element .
2210
-
2211
2198
A _schema coordinate_ is always unique . Each _schema element_ can be referenced
2212
2199
by exactly one possible schema coordinate .
2213
2200
@@ -2233,27 +2220,31 @@ production.
2233
2220
To refer to a _schema element_ , a _schema coordinate_ must be interpreted in the
2234
2221
context of a GraphQL {schema }.
2235
2222
2236
- If the _schema element_ cannot be found , and either it has no _containing
2237
- element_ or its _containing element_ exists and is of the expected type , the
2238
- resolve function returns { null }. Otherwise , an error is raised .
2223
+ If the _schema element_ cannot be found , the resolve function will not yield a
2224
+ value (without raising an error). However , an error will be raised if any
2225
+ non - leaf nodes within a _schema coordinate_ cannot be found in the { schema } .
2239
2226
2240
2227
TypeCoordinate : Name
2241
2228
2242
2229
1. Let {typeName } be the value of {Name }.
2243
2230
2. Return the type in the {schema } named {typeName }, or {null } if no such type
2244
2231
exists .
2245
2232
2246
- FieldCoordinate : Name . Name
2233
+ MemberCoordinate : Name . Name
2247
2234
2248
2235
1. Let {typeName } be the value of the first {Name }.
2249
2236
2. Let {type } be the type in the {schema } named {typeName }.
2250
- 3. Assert : {type } must exist , and must be an Input Object , Object or Interface
2251
- type .
2252
- 4. If {type } is an Input Object type :
2237
+ 3. Assert : {type } must exist , and must be an Enum , Input Object , Object or
2238
+ Interface type .
2239
+ 4. If {type } is an Enum type :
2240
+ 1. Let {enumValueName } be the value of the second {Name }.
2241
+ 2. Return the enum value of {type } named {enumValueName }, or {null } if no
2242
+ such value exists .
2243
+ 5. Otherwise , if {type } is an Input Object type :
2253
2244
1. Let {inputFieldName } be the value of the second {Name }.
2254
2245
2. Return the input field of {type } named {inputFieldName }, or {null } if no
2255
2246
such input field exists .
2256
- 5 . Otherwise :
2247
+ 6 . Otherwise :
2257
2248
1. Let {fieldName } be the value of the second {Name }.
2258
2249
2. Return the field of {type } named {fieldName }, or {null } if no such field
2259
2250
exists .
@@ -2270,15 +2261,6 @@ ArgumentCoordinate : Name . Name ( Name : )
2270
2261
8. Return the argument of {field } named {fieldArgumentName }, or {null } if no
2271
2262
such argument exists .
2272
2263
2273
- ValueCoordinate : Name :: Name
2274
-
2275
- 1. Let {typeName } be the value of the first {Name }.
2276
- 2. Let {type } be the type in the {schema } named {typeName }.
2277
- 3. Assert : {type } must exist , and must be an Enum type .
2278
- 4. Let {enumValueName } be the value of the second {Name }.
2279
- 5. Return the enum value of {type } named {enumValueName }, or {null } if no such
2280
- value exists .
2281
-
2282
2264
DirectiveCoordinate : @ Name
2283
2265
2284
2266
1. Let {directiveName } be the value of {Name }.
@@ -2301,8 +2283,8 @@ DirectiveArgumentCoordinate : @ Name ( Name : )
2301
2283
| Named Type | `Business ` | `Business ` type |
2302
2284
| Field | `Business .name ` | `name ` field on the `Business ` type |
2303
2285
| Input Field | `SearchCriteria .filter ` | `filter ` input field on the `SearchCriteria ` input object type |
2286
+ | Enum Value | `SearchFilter .OPEN_NOW ` | `OPEN_NOW ` value of the `SearchFilter ` enum |
2304
2287
| Field Argument | `Query .searchBusiness (criteria :)` | `criteria ` argument on the `searchBusiness ` field on the `Query ` type |
2305
- | Enum Value | `SearchFilter ::OPEN_NOW ` | `OPEN_NOW ` value of the `SearchFilter ` enum |
2306
2288
| Directive | `@private ` | `@private ` directive |
2307
2289
| Directive Argument | `@private (scope :)` | `scope ` argument on the `@private ` directive |
2308
2290
0 commit comments