graphql 14.0.0 → 14.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/error/GraphQLError.js +1 -1
- package/error/GraphQLError.js.flow +3 -3
- package/error/GraphQLError.mjs +1 -1
- package/error/formatError.js +1 -1
- package/error/formatError.mjs +1 -1
- package/error/index.mjs +1 -1
- package/error/locatedError.js +1 -1
- package/error/locatedError.mjs +1 -1
- package/error/printError.js +1 -1
- package/error/printError.mjs +1 -1
- package/error/syntaxError.js +1 -1
- package/error/syntaxError.mjs +1 -1
- package/execution/execute.js +4 -4
- package/execution/execute.js.flow +4 -6
- package/execution/execute.mjs +5 -5
- package/execution/index.mjs +1 -1
- package/execution/values.js +4 -4
- package/execution/values.js.flow +3 -3
- package/execution/values.mjs +3 -3
- package/graphql.js +1 -1
- package/graphql.mjs +1 -1
- package/index.js +12 -0
- package/index.js.flow +4 -0
- package/index.mjs +4 -4
- package/jsutils/dedent.js +2 -2
- package/jsutils/dedent.js.flow +1 -1
- package/jsutils/dedent.mjs +2 -2
- package/jsutils/defineToJSON.js +17 -6
- package/jsutils/defineToJSON.js.flow +14 -5
- package/jsutils/defineToJSON.mjs +14 -6
- package/jsutils/defineToStringTag.js +5 -5
- package/jsutils/defineToStringTag.js.flow +3 -3
- package/jsutils/defineToStringTag.mjs +4 -4
- package/jsutils/inspect.js +46 -12
- package/jsutils/inspect.js.flow +42 -15
- package/jsutils/inspect.mjs +45 -5
- package/jsutils/instanceOf.js +1 -1
- package/jsutils/instanceOf.mjs +1 -1
- package/jsutils/invariant.js +1 -1
- package/jsutils/invariant.mjs +1 -1
- package/jsutils/isInvalid.js +1 -1
- package/jsutils/isInvalid.mjs +1 -1
- package/jsutils/isNullish.js +1 -1
- package/jsutils/isNullish.mjs +1 -1
- package/jsutils/isPromise.js +1 -1
- package/jsutils/isPromise.mjs +1 -1
- package/jsutils/keyMap.js +1 -1
- package/jsutils/keyMap.mjs +1 -1
- package/jsutils/keyValMap.js +1 -1
- package/jsutils/keyValMap.mjs +1 -1
- package/jsutils/mapValue.js +54 -0
- package/jsutils/mapValue.js.flow +27 -0
- package/jsutils/mapValue.mjs +44 -0
- package/jsutils/memoize3.js +1 -1
- package/jsutils/memoize3.mjs +1 -1
- package/jsutils/nodejsCustomInspectSymbol.js +18 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
- package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
- package/jsutils/orList.js +17 -4
- package/jsutils/orList.js.flow +13 -7
- package/jsutils/orList.mjs +14 -4
- package/jsutils/promiseForObject.js +1 -1
- package/jsutils/promiseForObject.mjs +1 -1
- package/jsutils/promiseReduce.js +1 -1
- package/jsutils/promiseReduce.mjs +1 -1
- package/jsutils/quotedOrList.js +1 -1
- package/jsutils/quotedOrList.mjs +1 -1
- package/jsutils/suggestionList.js +1 -1
- package/jsutils/suggestionList.mjs +1 -1
- package/language/blockStringValue.js +2 -2
- package/language/blockStringValue.js.flow +1 -1
- package/language/blockStringValue.mjs +2 -2
- package/language/directiveLocation.js +1 -1
- package/language/directiveLocation.mjs +1 -1
- package/language/index.mjs +1 -1
- package/language/kinds.js +1 -1
- package/language/kinds.mjs +1 -1
- package/language/lexer.js +29 -13
- package/language/lexer.js.flow +34 -20
- package/language/lexer.mjs +28 -13
- package/language/location.js +1 -1
- package/language/location.mjs +1 -1
- package/language/parser.js +31 -38
- package/language/parser.js.flow +32 -48
- package/language/parser.mjs +30 -38
- package/language/predicates.js +1 -1
- package/language/predicates.mjs +1 -1
- package/language/printer.js +13 -7
- package/language/printer.js.flow +19 -9
- package/language/printer.mjs +13 -7
- package/language/source.js +8 -7
- package/language/source.mjs +1 -9
- package/language/visitor.js +11 -20
- package/language/visitor.js.flow +4 -5
- package/language/visitor.mjs +8 -20
- package/package.json +10 -3
- package/polyfills/find.js +31 -0
- package/polyfills/find.js.flow +29 -0
- package/polyfills/find.mjs +23 -0
- package/{jsutils → polyfills}/isFinite.js +1 -1
- package/{jsutils → polyfills}/isFinite.js.flow +0 -0
- package/{jsutils → polyfills}/isFinite.mjs +1 -1
- package/{jsutils → polyfills}/isInteger.js +1 -1
- package/{jsutils → polyfills}/isInteger.js.flow +0 -0
- package/{jsutils → polyfills}/isInteger.mjs +1 -1
- package/polyfills/objectEntries.js +26 -0
- package/polyfills/objectEntries.js.flow +19 -0
- package/polyfills/objectEntries.mjs +18 -0
- package/{jsutils → polyfills}/objectValues.js +1 -1
- package/{jsutils → polyfills}/objectValues.js.flow +1 -1
- package/{jsutils → polyfills}/objectValues.mjs +1 -1
- package/subscription/asyncIteratorReject.mjs +1 -1
- package/subscription/index.mjs +1 -1
- package/subscription/mapAsyncIterator.mjs +1 -1
- package/subscription/subscribe.js +1 -1
- package/subscription/subscribe.js.flow +1 -1
- package/subscription/subscribe.mjs +2 -2
- package/type/definition.js +31 -130
- package/type/definition.js.flow +35 -47
- package/type/definition.mjs +30 -131
- package/type/directives.js +25 -29
- package/type/directives.js.flow +24 -20
- package/type/directives.mjs +22 -30
- package/type/index.js +12 -0
- package/type/index.js.flow +4 -0
- package/type/index.mjs +5 -3
- package/type/introspection.js +3 -3
- package/type/introspection.js.flow +1 -1
- package/type/introspection.mjs +2 -2
- package/type/scalars.js +45 -34
- package/type/scalars.js.flow +40 -26
- package/type/scalars.mjs +44 -26
- package/type/schema.js +82 -87
- package/type/schema.js.flow +17 -9
- package/type/schema.mjs +79 -86
- package/type/validate.js +168 -175
- package/type/validate.js.flow +8 -49
- package/type/validate.mjs +159 -175
- package/utilities/TypeInfo.js +10 -23
- package/utilities/TypeInfo.js.flow +1 -1
- package/utilities/TypeInfo.mjs +2 -24
- package/utilities/assertValidName.js +1 -1
- package/utilities/assertValidName.mjs +1 -1
- package/utilities/astFromValue.js +2 -2
- package/utilities/astFromValue.js.flow +1 -1
- package/utilities/astFromValue.mjs +2 -2
- package/utilities/buildASTSchema.js +169 -152
- package/utilities/buildASTSchema.js.flow +117 -113
- package/utilities/buildASTSchema.mjs +160 -152
- package/utilities/buildClientSchema.js +24 -14
- package/utilities/buildClientSchema.js.flow +24 -14
- package/utilities/buildClientSchema.mjs +23 -14
- package/utilities/coerceValue.js +38 -19
- package/utilities/coerceValue.js.flow +41 -47
- package/utilities/coerceValue.mjs +38 -20
- package/utilities/concatAST.js +1 -1
- package/utilities/concatAST.mjs +1 -1
- package/utilities/extendSchema.js +228 -312
- package/utilities/extendSchema.js.flow +27 -152
- package/utilities/extendSchema.mjs +229 -312
- package/utilities/findBreakingChanges.js +7 -5
- package/utilities/findBreakingChanges.js.flow +3 -2
- package/utilities/findBreakingChanges.mjs +6 -5
- package/utilities/findDeprecatedUsages.js +1 -1
- package/utilities/findDeprecatedUsages.mjs +1 -1
- package/utilities/getOperationAST.js +1 -1
- package/utilities/getOperationAST.mjs +1 -1
- package/utilities/getOperationRootType.js +1 -1
- package/utilities/getOperationRootType.mjs +1 -1
- package/utilities/index.mjs +1 -1
- package/utilities/introspectionFromSchema.js +1 -1
- package/utilities/introspectionFromSchema.mjs +1 -1
- package/utilities/introspectionQuery.js +1 -1
- package/utilities/introspectionQuery.mjs +1 -1
- package/utilities/isValidJSValue.js +1 -1
- package/utilities/isValidJSValue.mjs +1 -1
- package/utilities/isValidLiteralValue.js +1 -1
- package/utilities/isValidLiteralValue.mjs +1 -1
- package/utilities/lexicographicSortSchema.js +2 -2
- package/utilities/lexicographicSortSchema.js.flow +1 -1
- package/utilities/lexicographicSortSchema.mjs +2 -2
- package/utilities/schemaPrinter.js +3 -3
- package/utilities/schemaPrinter.js.flow +1 -1
- package/utilities/schemaPrinter.mjs +2 -2
- package/utilities/separateOperations.js +1 -1
- package/utilities/separateOperations.mjs +1 -1
- package/utilities/typeComparators.js +1 -1
- package/utilities/typeComparators.mjs +1 -1
- package/utilities/typeFromAST.js +1 -1
- package/utilities/typeFromAST.mjs +1 -1
- package/utilities/valueFromAST.js +3 -3
- package/utilities/valueFromAST.js.flow +1 -1
- package/utilities/valueFromAST.mjs +2 -2
- package/utilities/valueFromASTUntyped.js +1 -1
- package/utilities/valueFromASTUntyped.mjs +1 -1
- package/validation/ValidationContext.js +57 -82
- package/validation/ValidationContext.js.flow +52 -49
- package/validation/ValidationContext.mjs +52 -77
- package/validation/index.js.flow +1 -0
- package/validation/index.mjs +1 -1
- package/validation/rules/ExecutableDefinitions.js +1 -1
- package/validation/rules/ExecutableDefinitions.js.flow +1 -1
- package/validation/rules/ExecutableDefinitions.mjs +1 -1
- package/validation/rules/FieldsOnCorrectType.js +1 -1
- package/validation/rules/FieldsOnCorrectType.mjs +1 -1
- package/validation/rules/FragmentsOnCompositeTypes.js +1 -1
- package/validation/rules/FragmentsOnCompositeTypes.mjs +1 -1
- package/validation/rules/KnownArgumentNames.mjs +1 -1
- package/validation/rules/KnownDirectives.js +1 -1
- package/validation/rules/KnownDirectives.mjs +1 -1
- package/validation/rules/KnownFragmentNames.js +1 -1
- package/validation/rules/KnownFragmentNames.mjs +1 -1
- package/validation/rules/KnownTypeNames.js +59 -21
- package/validation/rules/KnownTypeNames.js.flow +54 -20
- package/validation/rules/KnownTypeNames.mjs +56 -21
- package/validation/rules/LoneAnonymousOperation.js +1 -1
- package/validation/rules/LoneAnonymousOperation.mjs +1 -1
- package/validation/rules/LoneSchemaDefinition.js +1 -1
- package/validation/rules/LoneSchemaDefinition.mjs +1 -1
- package/validation/rules/NoFragmentCycles.js +1 -1
- package/validation/rules/NoFragmentCycles.js.flow +2 -2
- package/validation/rules/NoFragmentCycles.mjs +1 -1
- package/validation/rules/NoUndefinedVariables.js +1 -1
- package/validation/rules/NoUndefinedVariables.mjs +1 -1
- package/validation/rules/NoUnusedFragments.js +1 -1
- package/validation/rules/NoUnusedFragments.js.flow +2 -2
- package/validation/rules/NoUnusedFragments.mjs +1 -1
- package/validation/rules/NoUnusedVariables.js +1 -1
- package/validation/rules/NoUnusedVariables.mjs +1 -1
- package/validation/rules/OverlappingFieldsCanBeMerged.js +57 -33
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +5 -6
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +48 -33
- package/validation/rules/PossibleFragmentSpreads.js +1 -1
- package/validation/rules/PossibleFragmentSpreads.mjs +1 -1
- package/validation/rules/PossibleTypeExtensions.js +158 -0
- package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
- package/validation/rules/PossibleTypeExtensions.mjs +146 -0
- package/validation/rules/ProvidedRequiredArguments.mjs +1 -1
- package/validation/rules/ScalarLeafs.js +1 -1
- package/validation/rules/ScalarLeafs.mjs +1 -1
- package/validation/rules/SingleFieldSubscriptions.js +1 -1
- package/validation/rules/SingleFieldSubscriptions.mjs +1 -1
- package/validation/rules/UniqueArgumentNames.js +1 -1
- package/validation/rules/UniqueArgumentNames.mjs +1 -1
- package/validation/rules/UniqueDirectiveNames.js +55 -0
- package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
- package/validation/rules/UniqueDirectiveNames.mjs +43 -0
- package/validation/rules/UniqueDirectivesPerLocation.js +1 -1
- package/validation/rules/UniqueDirectivesPerLocation.mjs +1 -1
- package/validation/rules/UniqueEnumValueNames.js +94 -0
- package/validation/rules/UniqueEnumValueNames.js.flow +87 -0
- package/validation/rules/UniqueEnumValueNames.mjs +81 -0
- package/validation/rules/UniqueFieldDefinitionNames.js +105 -0
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +101 -0
- package/validation/rules/UniqueFieldDefinitionNames.mjs +92 -0
- package/validation/rules/UniqueFragmentNames.js +1 -1
- package/validation/rules/UniqueFragmentNames.mjs +1 -1
- package/validation/rules/UniqueInputFieldNames.js +1 -1
- package/validation/rules/UniqueInputFieldNames.mjs +1 -1
- package/validation/rules/UniqueOperationNames.js +1 -1
- package/validation/rules/UniqueOperationNames.mjs +1 -1
- package/validation/rules/UniqueOperationTypes.js +85 -0
- package/validation/rules/UniqueOperationTypes.js.flow +76 -0
- package/validation/rules/UniqueOperationTypes.mjs +73 -0
- package/validation/rules/UniqueTypeNames.js +62 -0
- package/validation/rules/UniqueTypeNames.js.flow +67 -0
- package/validation/rules/UniqueTypeNames.mjs +50 -0
- package/validation/rules/UniqueVariableNames.js +1 -1
- package/validation/rules/UniqueVariableNames.mjs +1 -1
- package/validation/rules/ValuesOfCorrectType.js +29 -13
- package/validation/rules/ValuesOfCorrectType.js.flow +4 -5
- package/validation/rules/ValuesOfCorrectType.mjs +28 -13
- package/validation/rules/VariablesAreInputTypes.js +1 -1
- package/validation/rules/VariablesAreInputTypes.mjs +1 -1
- package/validation/rules/VariablesInAllowedPosition.js +4 -4
- package/validation/rules/VariablesInAllowedPosition.mjs +4 -4
- package/validation/specifiedRules.js +14 -2
- package/validation/specifiedRules.js.flow +13 -0
- package/validation/specifiedRules.mjs +8 -2
- package/validation/validate.js +1 -1
- package/validation/validate.mjs +1 -1
- package/jsutils/find.js +0 -22
- package/jsutils/find.js.flow +0 -19
- package/jsutils/find.mjs +0 -15
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import inspect from '../jsutils/inspect';
|
|
10
11
|
import invariant from '../jsutils/invariant';
|
|
11
12
|
import keyMap from '../jsutils/keyMap';
|
|
12
13
|
import keyValMap from '../jsutils/keyValMap';
|
|
@@ -116,7 +117,7 @@ export function buildClientSchema(
|
|
|
116
117
|
return GraphQLNonNull(assertNullableType(nullableType));
|
|
117
118
|
}
|
|
118
119
|
if (!typeRef.name) {
|
|
119
|
-
throw new Error('Unknown type reference: ' +
|
|
120
|
+
throw new Error('Unknown type reference: ' + inspect(typeRef));
|
|
120
121
|
}
|
|
121
122
|
return getNamedType(typeRef.name);
|
|
122
123
|
}
|
|
@@ -142,7 +143,9 @@ export function buildClientSchema(
|
|
|
142
143
|
const type = getType(typeRef);
|
|
143
144
|
invariant(
|
|
144
145
|
isInputType(type),
|
|
145
|
-
'Introspection must provide input type for arguments
|
|
146
|
+
'Introspection must provide input type for arguments, but received: ' +
|
|
147
|
+
inspect(type) +
|
|
148
|
+
'.',
|
|
146
149
|
);
|
|
147
150
|
return type;
|
|
148
151
|
}
|
|
@@ -153,7 +156,9 @@ export function buildClientSchema(
|
|
|
153
156
|
const type = getType(typeRef);
|
|
154
157
|
invariant(
|
|
155
158
|
isOutputType(type),
|
|
156
|
-
'Introspection must provide output type for fields
|
|
159
|
+
'Introspection must provide output type for fields, but received: ' +
|
|
160
|
+
inspect(type) +
|
|
161
|
+
'.',
|
|
157
162
|
);
|
|
158
163
|
return type;
|
|
159
164
|
}
|
|
@@ -194,7 +199,7 @@ export function buildClientSchema(
|
|
|
194
199
|
throw new Error(
|
|
195
200
|
'Invalid or incomplete introspection result. Ensure that a full ' +
|
|
196
201
|
'introspection query is used in order to build a client schema:' +
|
|
197
|
-
|
|
202
|
+
inspect(type),
|
|
198
203
|
);
|
|
199
204
|
}
|
|
200
205
|
|
|
@@ -214,13 +219,13 @@ export function buildClientSchema(
|
|
|
214
219
|
if (!objectIntrospection.interfaces) {
|
|
215
220
|
throw new Error(
|
|
216
221
|
'Introspection result missing interfaces: ' +
|
|
217
|
-
|
|
222
|
+
inspect(objectIntrospection),
|
|
218
223
|
);
|
|
219
224
|
}
|
|
220
225
|
return new GraphQLObjectType({
|
|
221
226
|
name: objectIntrospection.name,
|
|
222
227
|
description: objectIntrospection.description,
|
|
223
|
-
interfaces: objectIntrospection.interfaces.map(getInterfaceType),
|
|
228
|
+
interfaces: () => objectIntrospection.interfaces.map(getInterfaceType),
|
|
224
229
|
fields: () => buildFieldDefMap(objectIntrospection),
|
|
225
230
|
});
|
|
226
231
|
}
|
|
@@ -241,13 +246,13 @@ export function buildClientSchema(
|
|
|
241
246
|
if (!unionIntrospection.possibleTypes) {
|
|
242
247
|
throw new Error(
|
|
243
248
|
'Introspection result missing possibleTypes: ' +
|
|
244
|
-
|
|
249
|
+
inspect(unionIntrospection),
|
|
245
250
|
);
|
|
246
251
|
}
|
|
247
252
|
return new GraphQLUnionType({
|
|
248
253
|
name: unionIntrospection.name,
|
|
249
254
|
description: unionIntrospection.description,
|
|
250
|
-
types: unionIntrospection.possibleTypes.map(getObjectType),
|
|
255
|
+
types: () => unionIntrospection.possibleTypes.map(getObjectType),
|
|
251
256
|
});
|
|
252
257
|
}
|
|
253
258
|
|
|
@@ -257,7 +262,7 @@ export function buildClientSchema(
|
|
|
257
262
|
if (!enumIntrospection.enumValues) {
|
|
258
263
|
throw new Error(
|
|
259
264
|
'Introspection result missing enumValues: ' +
|
|
260
|
-
|
|
265
|
+
inspect(enumIntrospection),
|
|
261
266
|
);
|
|
262
267
|
}
|
|
263
268
|
return new GraphQLEnumType({
|
|
@@ -280,7 +285,7 @@ export function buildClientSchema(
|
|
|
280
285
|
if (!inputObjectIntrospection.inputFields) {
|
|
281
286
|
throw new Error(
|
|
282
287
|
'Introspection result missing inputFields: ' +
|
|
283
|
-
|
|
288
|
+
inspect(inputObjectIntrospection),
|
|
284
289
|
);
|
|
285
290
|
}
|
|
286
291
|
return new GraphQLInputObjectType({
|
|
@@ -293,8 +298,7 @@ export function buildClientSchema(
|
|
|
293
298
|
function buildFieldDefMap(typeIntrospection) {
|
|
294
299
|
if (!typeIntrospection.fields) {
|
|
295
300
|
throw new Error(
|
|
296
|
-
'Introspection result missing fields: ' +
|
|
297
|
-
JSON.stringify(typeIntrospection),
|
|
301
|
+
'Introspection result missing fields: ' + inspect(typeIntrospection),
|
|
298
302
|
);
|
|
299
303
|
}
|
|
300
304
|
return keyValMap(
|
|
@@ -304,7 +308,7 @@ export function buildClientSchema(
|
|
|
304
308
|
if (!fieldIntrospection.args) {
|
|
305
309
|
throw new Error(
|
|
306
310
|
'Introspection result missing field args: ' +
|
|
307
|
-
|
|
311
|
+
inspect(fieldIntrospection),
|
|
308
312
|
);
|
|
309
313
|
}
|
|
310
314
|
return {
|
|
@@ -341,7 +345,13 @@ export function buildClientSchema(
|
|
|
341
345
|
if (!directiveIntrospection.args) {
|
|
342
346
|
throw new Error(
|
|
343
347
|
'Introspection result missing directive args: ' +
|
|
344
|
-
|
|
348
|
+
inspect(directiveIntrospection),
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
if (!directiveIntrospection.locations) {
|
|
352
|
+
throw new Error(
|
|
353
|
+
'Introspection result missing directive locations: ' +
|
|
354
|
+
inspect(directiveIntrospection),
|
|
345
355
|
);
|
|
346
356
|
}
|
|
347
357
|
return new GraphQLDirective({
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
*
|
|
8
8
|
*/
|
|
9
|
+
import inspect from '../jsutils/inspect';
|
|
9
10
|
import invariant from '../jsutils/invariant';
|
|
10
11
|
import keyMap from '../jsutils/keyMap';
|
|
11
12
|
import keyValMap from '../jsutils/keyValMap';
|
|
@@ -67,7 +68,7 @@ export function buildClientSchema(introspection, options) {
|
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
if (!typeRef.name) {
|
|
70
|
-
throw new Error('Unknown type reference: ' +
|
|
71
|
+
throw new Error('Unknown type reference: ' + inspect(typeRef));
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
return getNamedType(typeRef.name);
|
|
@@ -91,13 +92,13 @@ export function buildClientSchema(introspection, options) {
|
|
|
91
92
|
|
|
92
93
|
function getInputType(typeRef) {
|
|
93
94
|
var type = getType(typeRef);
|
|
94
|
-
!isInputType(type) ? invariant(0, 'Introspection must provide input type for arguments.') : void 0;
|
|
95
|
+
!isInputType(type) ? invariant(0, 'Introspection must provide input type for arguments, but received: ' + inspect(type) + '.') : void 0;
|
|
95
96
|
return type;
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
function getOutputType(typeRef) {
|
|
99
100
|
var type = getType(typeRef);
|
|
100
|
-
!isOutputType(type) ? invariant(0, 'Introspection must provide output type for fields.') : void 0;
|
|
101
|
+
!isOutputType(type) ? invariant(0, 'Introspection must provide output type for fields, but received: ' + inspect(type) + '.') : void 0;
|
|
101
102
|
return type;
|
|
102
103
|
}
|
|
103
104
|
|
|
@@ -136,7 +137,7 @@ export function buildClientSchema(introspection, options) {
|
|
|
136
137
|
}
|
|
137
138
|
}
|
|
138
139
|
|
|
139
|
-
throw new Error('Invalid or incomplete introspection result. Ensure that a full ' + 'introspection query is used in order to build a client schema:' +
|
|
140
|
+
throw new Error('Invalid or incomplete introspection result. Ensure that a full ' + 'introspection query is used in order to build a client schema:' + inspect(type));
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
function buildScalarDef(scalarIntrospection) {
|
|
@@ -151,13 +152,15 @@ export function buildClientSchema(introspection, options) {
|
|
|
151
152
|
|
|
152
153
|
function buildObjectDef(objectIntrospection) {
|
|
153
154
|
if (!objectIntrospection.interfaces) {
|
|
154
|
-
throw new Error('Introspection result missing interfaces: ' +
|
|
155
|
+
throw new Error('Introspection result missing interfaces: ' + inspect(objectIntrospection));
|
|
155
156
|
}
|
|
156
157
|
|
|
157
158
|
return new GraphQLObjectType({
|
|
158
159
|
name: objectIntrospection.name,
|
|
159
160
|
description: objectIntrospection.description,
|
|
160
|
-
interfaces:
|
|
161
|
+
interfaces: function interfaces() {
|
|
162
|
+
return objectIntrospection.interfaces.map(getInterfaceType);
|
|
163
|
+
},
|
|
161
164
|
fields: function fields() {
|
|
162
165
|
return buildFieldDefMap(objectIntrospection);
|
|
163
166
|
}
|
|
@@ -176,19 +179,21 @@ export function buildClientSchema(introspection, options) {
|
|
|
176
179
|
|
|
177
180
|
function buildUnionDef(unionIntrospection) {
|
|
178
181
|
if (!unionIntrospection.possibleTypes) {
|
|
179
|
-
throw new Error('Introspection result missing possibleTypes: ' +
|
|
182
|
+
throw new Error('Introspection result missing possibleTypes: ' + inspect(unionIntrospection));
|
|
180
183
|
}
|
|
181
184
|
|
|
182
185
|
return new GraphQLUnionType({
|
|
183
186
|
name: unionIntrospection.name,
|
|
184
187
|
description: unionIntrospection.description,
|
|
185
|
-
types:
|
|
188
|
+
types: function types() {
|
|
189
|
+
return unionIntrospection.possibleTypes.map(getObjectType);
|
|
190
|
+
}
|
|
186
191
|
});
|
|
187
192
|
}
|
|
188
193
|
|
|
189
194
|
function buildEnumDef(enumIntrospection) {
|
|
190
195
|
if (!enumIntrospection.enumValues) {
|
|
191
|
-
throw new Error('Introspection result missing enumValues: ' +
|
|
196
|
+
throw new Error('Introspection result missing enumValues: ' + inspect(enumIntrospection));
|
|
192
197
|
}
|
|
193
198
|
|
|
194
199
|
return new GraphQLEnumType({
|
|
@@ -207,7 +212,7 @@ export function buildClientSchema(introspection, options) {
|
|
|
207
212
|
|
|
208
213
|
function buildInputObjectDef(inputObjectIntrospection) {
|
|
209
214
|
if (!inputObjectIntrospection.inputFields) {
|
|
210
|
-
throw new Error('Introspection result missing inputFields: ' +
|
|
215
|
+
throw new Error('Introspection result missing inputFields: ' + inspect(inputObjectIntrospection));
|
|
211
216
|
}
|
|
212
217
|
|
|
213
218
|
return new GraphQLInputObjectType({
|
|
@@ -221,14 +226,14 @@ export function buildClientSchema(introspection, options) {
|
|
|
221
226
|
|
|
222
227
|
function buildFieldDefMap(typeIntrospection) {
|
|
223
228
|
if (!typeIntrospection.fields) {
|
|
224
|
-
throw new Error('Introspection result missing fields: ' +
|
|
229
|
+
throw new Error('Introspection result missing fields: ' + inspect(typeIntrospection));
|
|
225
230
|
}
|
|
226
231
|
|
|
227
232
|
return keyValMap(typeIntrospection.fields, function (fieldIntrospection) {
|
|
228
233
|
return fieldIntrospection.name;
|
|
229
234
|
}, function (fieldIntrospection) {
|
|
230
235
|
if (!fieldIntrospection.args) {
|
|
231
|
-
throw new Error('Introspection result missing field args: ' +
|
|
236
|
+
throw new Error('Introspection result missing field args: ' + inspect(fieldIntrospection));
|
|
232
237
|
}
|
|
233
238
|
|
|
234
239
|
return {
|
|
@@ -258,7 +263,11 @@ export function buildClientSchema(introspection, options) {
|
|
|
258
263
|
|
|
259
264
|
function buildDirective(directiveIntrospection) {
|
|
260
265
|
if (!directiveIntrospection.args) {
|
|
261
|
-
throw new Error('Introspection result missing directive args: ' +
|
|
266
|
+
throw new Error('Introspection result missing directive args: ' + inspect(directiveIntrospection));
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
if (!directiveIntrospection.locations) {
|
|
270
|
+
throw new Error('Introspection result missing directive locations: ' + inspect(directiveIntrospection));
|
|
262
271
|
}
|
|
263
272
|
|
|
264
273
|
return new GraphQLDirective({
|
package/utilities/coerceValue.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.coerceValue = coerceValue;
|
|
|
7
7
|
|
|
8
8
|
var _iterall = require("iterall");
|
|
9
9
|
|
|
10
|
+
var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
|
|
11
|
+
|
|
10
12
|
var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
|
|
11
13
|
|
|
12
14
|
var _isInvalid = _interopRequireDefault(require("../jsutils/isInvalid"));
|
|
@@ -111,39 +113,58 @@ function coerceValue(value, type, blameNode, path) {
|
|
|
111
113
|
var _coercedValue = {};
|
|
112
114
|
var fields = type.getFields(); // Ensure every defined field is valid.
|
|
113
115
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
var _iteratorNormalCompletion = true;
|
|
117
|
+
var _didIteratorError = false;
|
|
118
|
+
var _iteratorError = undefined;
|
|
119
|
+
|
|
120
|
+
try {
|
|
121
|
+
for (var _iterator = (0, _objectValues.default)(fields)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
122
|
+
var field = _step.value;
|
|
123
|
+
var fieldValue = value[field.name];
|
|
118
124
|
|
|
119
125
|
if ((0, _isInvalid.default)(fieldValue)) {
|
|
120
126
|
if (!(0, _isInvalid.default)(field.defaultValue)) {
|
|
121
|
-
_coercedValue[
|
|
127
|
+
_coercedValue[field.name] = field.defaultValue;
|
|
122
128
|
} else if ((0, _definition.isNonNullType)(field.type)) {
|
|
123
|
-
_errors = add(_errors, coercionError("Field ".concat(printPath(atPath(path,
|
|
129
|
+
_errors = add(_errors, coercionError("Field ".concat(printPath(atPath(path, field.name)), " of required ") + "type ".concat((0, _inspect.default)(field.type), " was not provided"), blameNode));
|
|
124
130
|
}
|
|
125
131
|
} else {
|
|
126
|
-
var coercedField = coerceValue(fieldValue, field.type, blameNode, atPath(path,
|
|
132
|
+
var coercedField = coerceValue(fieldValue, field.type, blameNode, atPath(path, field.name));
|
|
127
133
|
|
|
128
134
|
if (coercedField.errors) {
|
|
129
135
|
_errors = add(_errors, coercedField.errors);
|
|
130
136
|
} else if (!_errors) {
|
|
131
|
-
_coercedValue[
|
|
137
|
+
_coercedValue[field.name] = coercedField.value;
|
|
132
138
|
}
|
|
133
139
|
}
|
|
140
|
+
} // Ensure every provided field is defined.
|
|
141
|
+
|
|
142
|
+
} catch (err) {
|
|
143
|
+
_didIteratorError = true;
|
|
144
|
+
_iteratorError = err;
|
|
145
|
+
} finally {
|
|
146
|
+
try {
|
|
147
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
148
|
+
_iterator.return();
|
|
149
|
+
}
|
|
150
|
+
} finally {
|
|
151
|
+
if (_didIteratorError) {
|
|
152
|
+
throw _iteratorError;
|
|
153
|
+
}
|
|
134
154
|
}
|
|
135
|
-
}
|
|
155
|
+
}
|
|
136
156
|
|
|
157
|
+
var _arr = Object.keys(value);
|
|
137
158
|
|
|
138
|
-
for (var
|
|
139
|
-
|
|
140
|
-
if (!fields[_fieldName]) {
|
|
141
|
-
var _suggestions = (0, _suggestionList.default)(_fieldName, Object.keys(fields));
|
|
159
|
+
for (var _i = 0; _i < _arr.length; _i++) {
|
|
160
|
+
var fieldName = _arr[_i];
|
|
142
161
|
|
|
143
|
-
|
|
162
|
+
if (!fields[fieldName]) {
|
|
163
|
+
var _suggestions = (0, _suggestionList.default)(fieldName, Object.keys(fields));
|
|
144
164
|
|
|
145
|
-
|
|
146
|
-
|
|
165
|
+
var _didYouMean = _suggestions.length !== 0 ? "did you mean ".concat((0, _orList.default)(_suggestions), "?") : undefined;
|
|
166
|
+
|
|
167
|
+
_errors = add(_errors, coercionError("Field \"".concat(fieldName, "\" is not defined by type ").concat(type.name), blameNode, path, _didYouMean));
|
|
147
168
|
}
|
|
148
169
|
}
|
|
149
170
|
|
|
@@ -197,6 +218,4 @@ function printPath(path) {
|
|
|
197
218
|
}
|
|
198
219
|
|
|
199
220
|
return pathStr ? 'value' + pathStr : '';
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
221
|
+
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { forEach, isCollection } from 'iterall';
|
|
11
|
+
import objectValues from '../polyfills/objectValues';
|
|
11
12
|
import inspect from '../jsutils/inspect';
|
|
12
13
|
import isInvalid from '../jsutils/isInvalid';
|
|
13
14
|
import orList from '../jsutils/orList';
|
|
@@ -147,58 +148,53 @@ export function coerceValue(
|
|
|
147
148
|
const fields = type.getFields();
|
|
148
149
|
|
|
149
150
|
// Ensure every defined field is valid.
|
|
150
|
-
for (const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
coercedValue[fieldName] = field.defaultValue;
|
|
157
|
-
} else if (isNonNullType(field.type)) {
|
|
158
|
-
errors = add(
|
|
159
|
-
errors,
|
|
160
|
-
coercionError(
|
|
161
|
-
`Field ${printPath(atPath(path, fieldName))} of required ` +
|
|
162
|
-
`type ${inspect(field.type)} was not provided`,
|
|
163
|
-
blameNode,
|
|
164
|
-
),
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
} else {
|
|
168
|
-
const coercedField = coerceValue(
|
|
169
|
-
fieldValue,
|
|
170
|
-
field.type,
|
|
171
|
-
blameNode,
|
|
172
|
-
atPath(path, fieldName),
|
|
173
|
-
);
|
|
174
|
-
if (coercedField.errors) {
|
|
175
|
-
errors = add(errors, coercedField.errors);
|
|
176
|
-
} else if (!errors) {
|
|
177
|
-
coercedValue[fieldName] = coercedField.value;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
// Ensure every provided field is defined.
|
|
184
|
-
for (const fieldName in value) {
|
|
185
|
-
if (hasOwnProperty.call(value, fieldName)) {
|
|
186
|
-
if (!fields[fieldName]) {
|
|
187
|
-
const suggestions = suggestionList(fieldName, Object.keys(fields));
|
|
188
|
-
const didYouMean =
|
|
189
|
-
suggestions.length !== 0
|
|
190
|
-
? `did you mean ${orList(suggestions)}?`
|
|
191
|
-
: undefined;
|
|
151
|
+
for (const field of objectValues(fields)) {
|
|
152
|
+
const fieldValue = value[field.name];
|
|
153
|
+
if (isInvalid(fieldValue)) {
|
|
154
|
+
if (!isInvalid(field.defaultValue)) {
|
|
155
|
+
coercedValue[field.name] = field.defaultValue;
|
|
156
|
+
} else if (isNonNullType(field.type)) {
|
|
192
157
|
errors = add(
|
|
193
158
|
errors,
|
|
194
159
|
coercionError(
|
|
195
|
-
`Field
|
|
160
|
+
`Field ${printPath(atPath(path, field.name))} of required ` +
|
|
161
|
+
`type ${inspect(field.type)} was not provided`,
|
|
196
162
|
blameNode,
|
|
197
|
-
path,
|
|
198
|
-
didYouMean,
|
|
199
163
|
),
|
|
200
164
|
);
|
|
201
165
|
}
|
|
166
|
+
} else {
|
|
167
|
+
const coercedField = coerceValue(
|
|
168
|
+
fieldValue,
|
|
169
|
+
field.type,
|
|
170
|
+
blameNode,
|
|
171
|
+
atPath(path, field.name),
|
|
172
|
+
);
|
|
173
|
+
if (coercedField.errors) {
|
|
174
|
+
errors = add(errors, coercedField.errors);
|
|
175
|
+
} else if (!errors) {
|
|
176
|
+
coercedValue[field.name] = coercedField.value;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Ensure every provided field is defined.
|
|
182
|
+
for (const fieldName of Object.keys(value)) {
|
|
183
|
+
if (!fields[fieldName]) {
|
|
184
|
+
const suggestions = suggestionList(fieldName, Object.keys(fields));
|
|
185
|
+
const didYouMean =
|
|
186
|
+
suggestions.length !== 0
|
|
187
|
+
? `did you mean ${orList(suggestions)}?`
|
|
188
|
+
: undefined;
|
|
189
|
+
errors = add(
|
|
190
|
+
errors,
|
|
191
|
+
coercionError(
|
|
192
|
+
`Field "${fieldName}" is not defined by type ${type.name}`,
|
|
193
|
+
blameNode,
|
|
194
|
+
path,
|
|
195
|
+
didYouMean,
|
|
196
|
+
),
|
|
197
|
+
);
|
|
202
198
|
}
|
|
203
199
|
}
|
|
204
200
|
|
|
@@ -253,5 +249,3 @@ function printPath(path) {
|
|
|
253
249
|
}
|
|
254
250
|
return pathStr ? 'value' + pathStr : '';
|
|
255
251
|
}
|
|
256
|
-
|
|
257
|
-
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
@@ -6,9 +6,10 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
*
|
|
10
10
|
*/
|
|
11
11
|
import { forEach, isCollection } from 'iterall';
|
|
12
|
+
import objectValues from '../polyfills/objectValues';
|
|
12
13
|
import inspect from '../jsutils/inspect';
|
|
13
14
|
import isInvalid from '../jsutils/isInvalid';
|
|
14
15
|
import orList from '../jsutils/orList';
|
|
@@ -104,39 +105,58 @@ export function coerceValue(value, type, blameNode, path) {
|
|
|
104
105
|
var _coercedValue = {};
|
|
105
106
|
var fields = type.getFields(); // Ensure every defined field is valid.
|
|
106
107
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
var _iteratorNormalCompletion = true;
|
|
109
|
+
var _didIteratorError = false;
|
|
110
|
+
var _iteratorError = undefined;
|
|
111
|
+
|
|
112
|
+
try {
|
|
113
|
+
for (var _iterator = objectValues(fields)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
114
|
+
var field = _step.value;
|
|
115
|
+
var fieldValue = value[field.name];
|
|
111
116
|
|
|
112
117
|
if (isInvalid(fieldValue)) {
|
|
113
118
|
if (!isInvalid(field.defaultValue)) {
|
|
114
|
-
_coercedValue[
|
|
119
|
+
_coercedValue[field.name] = field.defaultValue;
|
|
115
120
|
} else if (isNonNullType(field.type)) {
|
|
116
|
-
_errors = add(_errors, coercionError("Field ".concat(printPath(atPath(path,
|
|
121
|
+
_errors = add(_errors, coercionError("Field ".concat(printPath(atPath(path, field.name)), " of required ") + "type ".concat(inspect(field.type), " was not provided"), blameNode));
|
|
117
122
|
}
|
|
118
123
|
} else {
|
|
119
|
-
var coercedField = coerceValue(fieldValue, field.type, blameNode, atPath(path,
|
|
124
|
+
var coercedField = coerceValue(fieldValue, field.type, blameNode, atPath(path, field.name));
|
|
120
125
|
|
|
121
126
|
if (coercedField.errors) {
|
|
122
127
|
_errors = add(_errors, coercedField.errors);
|
|
123
128
|
} else if (!_errors) {
|
|
124
|
-
_coercedValue[
|
|
129
|
+
_coercedValue[field.name] = coercedField.value;
|
|
125
130
|
}
|
|
126
131
|
}
|
|
132
|
+
} // Ensure every provided field is defined.
|
|
133
|
+
|
|
134
|
+
} catch (err) {
|
|
135
|
+
_didIteratorError = true;
|
|
136
|
+
_iteratorError = err;
|
|
137
|
+
} finally {
|
|
138
|
+
try {
|
|
139
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
140
|
+
_iterator.return();
|
|
141
|
+
}
|
|
142
|
+
} finally {
|
|
143
|
+
if (_didIteratorError) {
|
|
144
|
+
throw _iteratorError;
|
|
145
|
+
}
|
|
127
146
|
}
|
|
128
|
-
}
|
|
147
|
+
}
|
|
129
148
|
|
|
149
|
+
var _arr = Object.keys(value);
|
|
130
150
|
|
|
131
|
-
for (var
|
|
132
|
-
|
|
133
|
-
if (!fields[_fieldName]) {
|
|
134
|
-
var _suggestions = suggestionList(_fieldName, Object.keys(fields));
|
|
151
|
+
for (var _i = 0; _i < _arr.length; _i++) {
|
|
152
|
+
var fieldName = _arr[_i];
|
|
135
153
|
|
|
136
|
-
|
|
154
|
+
if (!fields[fieldName]) {
|
|
155
|
+
var _suggestions = suggestionList(fieldName, Object.keys(fields));
|
|
137
156
|
|
|
138
|
-
|
|
139
|
-
|
|
157
|
+
var _didYouMean = _suggestions.length !== 0 ? "did you mean ".concat(orList(_suggestions), "?") : undefined;
|
|
158
|
+
|
|
159
|
+
_errors = add(_errors, coercionError("Field \"".concat(fieldName, "\" is not defined by type ").concat(type.name), blameNode, path, _didYouMean));
|
|
140
160
|
}
|
|
141
161
|
}
|
|
142
162
|
|
|
@@ -190,6 +210,4 @@ function printPath(path) {
|
|
|
190
210
|
}
|
|
191
211
|
|
|
192
212
|
return pathStr ? 'value' + pathStr : '';
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
213
|
+
}
|
package/utilities/concatAST.js
CHANGED