@@ -2233,20 +2233,17 @@ scalar UUID @specifiedBy(url: "https://tools.ietf.org/html/rfc4122")
2233
2233
SchemaCoordinate :
2234
2234
2235
2235
- TypeCoordinate
2236
- - FieldCoordinate
2236
+ - MemberCoordinate
2237
2237
- ArgumentCoordinate
2238
- - ValueCoordinate
2239
2238
- DirectiveCoordinate
2240
2239
- DirectiveArgumentCoordinate
2241
2240
2242
2241
TypeCoordinate : Name
2243
2242
2244
- FieldCoordinate : Name . Name
2243
+ MemberCoordinate : Name . Name
2245
2244
2246
2245
ArgumentCoordinate : Name . Name ( Name : )
2247
2246
2248
- ValueCoordinate : Name :: Name
2249
-
2250
2247
DirectiveCoordinate : @ Name
2251
2248
2252
2249
DirectiveArgumentCoordinate : @ Name ( Name : )
@@ -2257,16 +2254,6 @@ _schema element_ within a GraphQL Schema.
2257
2254
:: A _schema element_ can be a named type , a field , an input field , an enum
2258
2255
value , a field argument , a directive , or a directive argument .
2259
2256
2260
- :: The _containing element_ of a _schema element_ is the schema element with one
2261
- fewer {Name } token that syntactically contains it . For example :
2262
-
2263
- - The containing element of an {ArgumentCoordinate } or
2264
- {DirectiveArgumentCoordinate } is the corresponding {FieldCoordinate } or
2265
- {DirectiveCoordinate } respectively .
2266
- - The containing element of a {FieldCoordinate } or {ValueCoordinate } is its
2267
- containing {TypeCoordinate }.
2268
- - {TypeCoordinate } and {DirectiveCoordinate } have no containing element .
2269
-
2270
2257
A _schema coordinate_ is always unique . Each _schema element_ can be referenced
2271
2258
by exactly one possible schema coordinate .
2272
2259
@@ -2292,27 +2279,31 @@ production.
2292
2279
To refer to a _schema element_ , a _schema coordinate_ must be interpreted in the
2293
2280
context of a GraphQL {schema }.
2294
2281
2295
- If the _schema element_ cannot be found , and either it has no _containing
2296
- element_ or its _containing element_ exists and is of the expected type , the
2297
- resolve function returns { null }. Otherwise , an error is raised .
2282
+ If the _schema element_ cannot be found , the resolve function will not yield a
2283
+ value (without raising an error). However , an error will be raised if any
2284
+ non - leaf nodes within a _schema coordinate_ cannot be found in the { schema } .
2298
2285
2299
2286
TypeCoordinate : Name
2300
2287
2301
2288
1. Let {typeName } be the value of {Name }.
2302
2289
2. Return the type in the {schema } named {typeName }, or {null } if no such type
2303
2290
exists .
2304
2291
2305
- FieldCoordinate : Name . Name
2292
+ MemberCoordinate : Name . Name
2306
2293
2307
2294
1. Let {typeName } be the value of the first {Name }.
2308
2295
2. Let {type } be the type in the {schema } named {typeName }.
2309
- 3. Assert : {type } must exist , and must be an Input Object , Object or Interface
2310
- type .
2311
- 4. If {type } is an Input Object type :
2296
+ 3. Assert : {type } must exist , and must be an Enum , Input Object , Object or
2297
+ Interface type .
2298
+ 4. If {type } is an Enum type :
2299
+ 1. Let {enumValueName } be the value of the second {Name }.
2300
+ 2. Return the enum value of {type } named {enumValueName }, or {null } if no
2301
+ such value exists .
2302
+ 5. Otherwise , if {type } is an Input Object type :
2312
2303
1. Let {inputFieldName } be the value of the second {Name }.
2313
2304
2. Return the input field of {type } named {inputFieldName }, or {null } if no
2314
2305
such input field exists .
2315
- 5 . Otherwise :
2306
+ 6 . Otherwise :
2316
2307
1. Let {fieldName } be the value of the second {Name }.
2317
2308
2. Return the field of {type } named {fieldName }, or {null } if no such field
2318
2309
exists .
@@ -2329,15 +2320,6 @@ ArgumentCoordinate : Name . Name ( Name : )
2329
2320
8. Return the argument of {field } named {fieldArgumentName }, or {null } if no
2330
2321
such argument exists .
2331
2322
2332
- ValueCoordinate : Name :: Name
2333
-
2334
- 1. Let {typeName } be the value of the first {Name }.
2335
- 2. Let {type } be the type in the {schema } named {typeName }.
2336
- 3. Assert : {type } must exist , and must be an Enum type .
2337
- 4. Let {enumValueName } be the value of the second {Name }.
2338
- 5. Return the enum value of {type } named {enumValueName }, or {null } if no such
2339
- value exists .
2340
-
2341
2323
DirectiveCoordinate : @ Name
2342
2324
2343
2325
1. Let {directiveName } be the value of {Name }.
@@ -2360,8 +2342,8 @@ DirectiveArgumentCoordinate : @ Name ( Name : )
2360
2342
| Named Type | `Business ` | `Business ` type |
2361
2343
| Field | `Business .name ` | `name ` field on the `Business ` type |
2362
2344
| Input Field | `SearchCriteria .filter ` | `filter ` input field on the `SearchCriteria ` input object type |
2345
+ | Enum Value | `SearchFilter .OPEN_NOW ` | `OPEN_NOW ` value of the `SearchFilter ` enum |
2363
2346
| Field Argument | `Query .searchBusiness (criteria :)` | `criteria ` argument on the `searchBusiness ` field on the `Query ` type |
2364
- | Enum Value | `SearchFilter ::OPEN_NOW ` | `OPEN_NOW ` value of the `SearchFilter ` enum |
2365
2347
| Directive | `@private ` | `@private ` directive |
2366
2348
| Directive Argument | `@private (scope :)` | `scope ` argument on the `@private ` directive |
2367
2349
0 commit comments