graphql 14.0.2 → 14.2.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/LICENSE +1 -1
- package/README.md +5 -5
- package/codecov.yml +14 -0
- package/error/GraphQLError.js +2 -2
- package/error/GraphQLError.js.flow +4 -4
- package/error/GraphQLError.mjs +2 -2
- package/error/formatError.js +2 -2
- package/error/formatError.js.flow +1 -1
- package/error/formatError.mjs +2 -2
- package/error/index.js.flow +1 -1
- package/error/index.mjs +2 -2
- package/error/locatedError.js +2 -2
- package/error/locatedError.js.flow +1 -1
- package/error/locatedError.mjs +2 -2
- package/error/printError.js +2 -2
- package/error/printError.js.flow +1 -1
- package/error/printError.mjs +2 -2
- package/error/syntaxError.js +2 -2
- package/error/syntaxError.js.flow +1 -1
- package/error/syntaxError.mjs +2 -2
- package/execution/execute.js +20 -11
- package/execution/execute.js.flow +41 -27
- package/execution/execute.mjs +19 -13
- package/execution/index.js +6 -0
- package/execution/index.js.flow +7 -2
- package/execution/index.mjs +3 -3
- package/execution/values.js +10 -10
- package/execution/values.js.flow +8 -8
- package/execution/values.mjs +9 -9
- package/graphql.js +8 -8
- package/graphql.js.flow +18 -4
- package/graphql.mjs +8 -8
- package/index.js +18 -0
- package/index.js.flow +4 -1
- package/index.mjs +4 -4
- package/jsutils/ObjMap.js.flow +1 -1
- package/jsutils/{MaybePromise.js → PromiseOrValue.js} +0 -0
- package/jsutils/{MaybePromise.js.flow → PromiseOrValue.js.flow} +2 -2
- package/jsutils/{MaybePromise.mjs → PromiseOrValue.mjs} +0 -0
- package/jsutils/dedent.js +2 -2
- package/jsutils/dedent.js.flow +1 -1
- package/jsutils/dedent.mjs +2 -2
- package/jsutils/defineToJSON.js +18 -7
- package/jsutils/defineToJSON.js.flow +15 -6
- package/jsutils/defineToJSON.mjs +15 -7
- package/jsutils/defineToStringTag.js +6 -6
- package/jsutils/defineToStringTag.js.flow +4 -4
- package/jsutils/defineToStringTag.mjs +5 -5
- package/jsutils/inspect.js +109 -23
- package/jsutils/inspect.js.flow +112 -14
- package/jsutils/inspect.mjs +108 -17
- package/jsutils/instanceOf.js +2 -2
- package/jsutils/instanceOf.js.flow +1 -1
- package/jsutils/instanceOf.mjs +2 -2
- package/jsutils/invariant.js +2 -2
- package/jsutils/invariant.js.flow +1 -1
- package/jsutils/invariant.mjs +2 -2
- package/jsutils/isInvalid.js +2 -2
- package/jsutils/isInvalid.js.flow +1 -1
- package/jsutils/isInvalid.mjs +2 -2
- package/jsutils/isNullish.js +2 -2
- package/jsutils/isNullish.js.flow +1 -1
- package/jsutils/isNullish.mjs +2 -2
- package/jsutils/isPromise.js +2 -2
- package/jsutils/isPromise.js.flow +1 -1
- package/jsutils/isPromise.mjs +2 -2
- package/jsutils/keyMap.js +2 -2
- package/jsutils/keyMap.js.flow +1 -1
- package/jsutils/keyMap.mjs +2 -2
- package/jsutils/keyValMap.js +2 -2
- package/jsutils/keyValMap.js.flow +1 -1
- package/jsutils/keyValMap.mjs +2 -2
- package/jsutils/mapValue.js +54 -0
- package/jsutils/mapValue.js.flow +27 -0
- package/jsutils/mapValue.mjs +44 -0
- package/jsutils/memoize3.js +2 -2
- package/jsutils/memoize3.js.flow +1 -1
- package/jsutils/memoize3.mjs +2 -2
- package/jsutils/nodejsCustomInspectSymbol.js +18 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
- package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
- package/jsutils/orList.js +18 -5
- package/jsutils/orList.js.flow +14 -8
- package/jsutils/orList.mjs +15 -5
- package/jsutils/promiseForObject.js +2 -2
- package/jsutils/promiseForObject.js.flow +1 -1
- package/jsutils/promiseForObject.mjs +2 -2
- package/jsutils/promiseReduce.js +2 -2
- package/jsutils/promiseReduce.js.flow +5 -5
- package/jsutils/promiseReduce.mjs +2 -2
- package/jsutils/quotedOrList.js +2 -2
- package/jsutils/quotedOrList.js.flow +1 -1
- package/jsutils/quotedOrList.mjs +2 -2
- package/jsutils/suggestionList.js +2 -2
- package/jsutils/suggestionList.js.flow +1 -1
- package/jsutils/suggestionList.mjs +2 -2
- package/language/ast.js.flow +1 -1
- package/language/{blockStringValue.mjs → blockString.js} +39 -3
- package/language/{blockStringValue.js.flow → blockString.js.flow} +31 -2
- package/language/{blockStringValue.js → blockString.mjs} +31 -10
- package/language/directiveLocation.js +2 -2
- package/language/directiveLocation.js.flow +1 -1
- package/language/directiveLocation.mjs +2 -2
- package/language/index.js.flow +1 -1
- package/language/index.mjs +2 -2
- package/language/kinds.js +2 -2
- package/language/kinds.js.flow +1 -1
- package/language/kinds.mjs +2 -2
- package/language/lexer.js +60 -46
- package/language/lexer.js.flow +71 -69
- package/language/lexer.mjs +58 -45
- package/language/location.js +2 -2
- package/language/location.js.flow +1 -1
- package/language/location.mjs +2 -2
- package/language/parser.js +84 -83
- package/language/parser.js.flow +85 -94
- package/language/parser.mjs +83 -83
- package/language/predicates.js +2 -2
- package/language/predicates.js.flow +1 -1
- package/language/predicates.mjs +2 -2
- package/language/printer.js +15 -17
- package/language/printer.js.flow +21 -20
- package/language/printer.mjs +14 -17
- package/language/source.js +8 -7
- package/language/source.js.flow +1 -1
- package/language/source.mjs +2 -10
- package/language/visitor.js +7 -6
- package/language/visitor.js.flow +3 -5
- package/language/visitor.mjs +7 -6
- package/package.json +5 -2
- package/polyfills/find.js +31 -0
- package/polyfills/find.js.flow +29 -0
- package/polyfills/find.mjs +23 -0
- package/polyfills/flatMap.js +38 -0
- package/polyfills/flatMap.js.flow +34 -0
- package/polyfills/flatMap.mjs +30 -0
- package/{jsutils → polyfills}/isFinite.js +2 -2
- package/{jsutils → polyfills}/isFinite.js.flow +1 -1
- package/{jsutils → polyfills}/isFinite.mjs +2 -2
- package/{jsutils → polyfills}/isInteger.js +2 -2
- package/{jsutils → polyfills}/isInteger.js.flow +1 -1
- package/{jsutils → polyfills}/isInteger.mjs +2 -2
- package/polyfills/objectEntries.js +26 -0
- package/polyfills/objectEntries.js.flow +19 -0
- package/polyfills/objectEntries.mjs +18 -0
- package/{jsutils → polyfills}/objectValues.js +2 -2
- package/{jsutils → polyfills}/objectValues.js.flow +2 -2
- package/{jsutils → polyfills}/objectValues.mjs +2 -2
- package/subscription/asyncIteratorReject.js.flow +1 -1
- package/subscription/asyncIteratorReject.mjs +2 -2
- package/subscription/index.js.flow +1 -1
- package/subscription/index.mjs +2 -2
- package/subscription/mapAsyncIterator.js.flow +5 -5
- package/subscription/mapAsyncIterator.mjs +2 -2
- package/subscription/subscribe.js +2 -2
- package/subscription/subscribe.js.flow +1 -1
- package/subscription/subscribe.mjs +2 -2
- package/type/definition.js +161 -138
- package/type/definition.js.flow +193 -57
- package/type/definition.mjs +158 -140
- package/type/directives.js +35 -29
- package/type/directives.js.flow +39 -21
- package/type/directives.mjs +34 -31
- package/type/index.js +12 -0
- package/type/index.js.flow +5 -1
- package/type/index.mjs +6 -4
- package/type/introspection.js +11 -7
- package/type/introspection.js.flow +11 -8
- package/type/introspection.mjs +11 -7
- package/type/scalars.js +45 -34
- package/type/scalars.js.flow +41 -27
- package/type/scalars.mjs +45 -27
- package/type/schema.js +134 -88
- package/type/schema.js.flow +77 -11
- package/type/schema.mjs +132 -88
- package/type/validate.js +152 -187
- package/type/validate.js.flow +12 -61
- package/type/validate.mjs +143 -188
- package/utilities/TypeInfo.js +10 -23
- package/utilities/TypeInfo.js.flow +2 -2
- package/utilities/TypeInfo.mjs +3 -25
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +1 -1
- package/utilities/assertValidName.mjs +2 -2
- package/utilities/astFromValue.js +7 -6
- package/utilities/astFromValue.js.flow +7 -6
- package/utilities/astFromValue.mjs +9 -8
- package/utilities/buildASTSchema.js +213 -197
- package/utilities/buildASTSchema.js.flow +163 -173
- package/utilities/buildASTSchema.mjs +203 -198
- package/utilities/buildClientSchema.js +39 -47
- package/utilities/buildClientSchema.js.flow +49 -58
- package/utilities/buildClientSchema.mjs +38 -46
- package/utilities/coerceValue.js +41 -21
- package/utilities/coerceValue.js.flow +44 -49
- package/utilities/coerceValue.mjs +42 -23
- package/utilities/concatAST.js +9 -13
- package/utilities/concatAST.js.flow +3 -9
- package/utilities/concatAST.mjs +6 -13
- package/utilities/extendSchema.js +256 -630
- package/utilities/extendSchema.js.flow +190 -426
- package/utilities/extendSchema.mjs +256 -631
- package/utilities/findBreakingChanges.js +8 -6
- package/utilities/findBreakingChanges.js.flow +4 -3
- package/utilities/findBreakingChanges.mjs +7 -6
- package/utilities/findDeprecatedUsages.js +4 -4
- package/utilities/findDeprecatedUsages.js.flow +3 -3
- package/utilities/findDeprecatedUsages.mjs +4 -4
- package/utilities/getOperationAST.js +2 -2
- package/utilities/getOperationAST.js.flow +1 -1
- package/utilities/getOperationAST.mjs +2 -2
- package/utilities/getOperationRootType.js +6 -6
- package/utilities/getOperationRootType.js.flow +9 -7
- package/utilities/getOperationRootType.mjs +6 -6
- package/utilities/index.js.flow +1 -1
- package/utilities/index.mjs +2 -2
- package/utilities/introspectionFromSchema.js +2 -2
- package/utilities/introspectionFromSchema.js.flow +1 -1
- package/utilities/introspectionFromSchema.mjs +2 -2
- package/utilities/introspectionQuery.js +2 -2
- package/utilities/introspectionQuery.js.flow +1 -1
- package/utilities/introspectionQuery.mjs +2 -2
- package/utilities/isValidJSValue.js +4 -2
- package/utilities/isValidJSValue.js.flow +2 -1
- package/utilities/isValidJSValue.mjs +4 -2
- package/utilities/isValidLiteralValue.js +2 -2
- package/utilities/isValidLiteralValue.js.flow +1 -1
- package/utilities/isValidLiteralValue.mjs +2 -2
- package/utilities/lexicographicSortSchema.js +86 -124
- package/utilities/lexicographicSortSchema.js.flow +68 -96
- package/utilities/lexicographicSortSchema.mjs +86 -124
- package/utilities/schemaPrinter.js +47 -73
- package/utilities/schemaPrinter.js.flow +62 -111
- package/utilities/schemaPrinter.mjs +46 -73
- package/utilities/separateOperations.js +11 -10
- package/utilities/separateOperations.js.flow +1 -1
- package/utilities/separateOperations.mjs +11 -10
- package/utilities/typeComparators.js +2 -2
- package/utilities/typeComparators.js.flow +1 -1
- package/utilities/typeComparators.mjs +2 -2
- package/utilities/typeFromAST.js +9 -4
- package/utilities/typeFromAST.js.flow +5 -2
- package/utilities/typeFromAST.mjs +6 -4
- package/utilities/valueFromAST.js +9 -6
- package/utilities/valueFromAST.js.flow +5 -3
- package/utilities/valueFromAST.mjs +7 -5
- package/utilities/valueFromASTUntyped.js +7 -4
- package/utilities/valueFromASTUntyped.js.flow +5 -2
- package/utilities/valueFromASTUntyped.mjs +6 -4
- package/validation/ValidationContext.js +57 -82
- package/validation/ValidationContext.js.flow +53 -50
- package/validation/ValidationContext.mjs +53 -78
- package/validation/index.js.flow +1 -1
- package/validation/index.mjs +2 -2
- package/validation/rules/ExecutableDefinitions.js +3 -3
- package/validation/rules/ExecutableDefinitions.js.flow +3 -3
- package/validation/rules/ExecutableDefinitions.mjs +3 -3
- package/validation/rules/FieldsOnCorrectType.js +3 -3
- package/validation/rules/FieldsOnCorrectType.js.flow +2 -2
- package/validation/rules/FieldsOnCorrectType.mjs +3 -3
- package/validation/rules/FragmentsOnCompositeTypes.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypes.js.flow +3 -3
- package/validation/rules/FragmentsOnCompositeTypes.mjs +4 -4
- package/validation/rules/KnownArgumentNames.js.flow +1 -1
- package/validation/rules/KnownArgumentNames.mjs +2 -2
- package/validation/rules/KnownDirectives.js +4 -4
- package/validation/rules/KnownDirectives.js.flow +5 -4
- package/validation/rules/KnownDirectives.mjs +4 -4
- package/validation/rules/KnownFragmentNames.js +3 -3
- package/validation/rules/KnownFragmentNames.js.flow +2 -2
- package/validation/rules/KnownFragmentNames.mjs +3 -3
- package/validation/rules/KnownTypeNames.js +60 -22
- package/validation/rules/KnownTypeNames.js.flow +55 -21
- package/validation/rules/KnownTypeNames.mjs +57 -22
- package/validation/rules/LoneAnonymousOperation.js +3 -3
- package/validation/rules/LoneAnonymousOperation.js.flow +2 -2
- package/validation/rules/LoneAnonymousOperation.mjs +3 -3
- package/validation/rules/LoneSchemaDefinition.js +2 -2
- package/validation/rules/LoneSchemaDefinition.js.flow +1 -1
- package/validation/rules/LoneSchemaDefinition.mjs +2 -2
- package/validation/rules/NoFragmentCycles.js +2 -2
- package/validation/rules/NoFragmentCycles.js.flow +3 -3
- package/validation/rules/NoFragmentCycles.mjs +2 -2
- package/validation/rules/NoUndefinedVariables.js +2 -2
- package/validation/rules/NoUndefinedVariables.js.flow +1 -1
- package/validation/rules/NoUndefinedVariables.mjs +2 -2
- package/validation/rules/NoUnusedFragments.js +10 -7
- package/validation/rules/NoUnusedFragments.js.flow +4 -4
- package/validation/rules/NoUnusedFragments.mjs +10 -7
- package/validation/rules/NoUnusedVariables.js +7 -5
- package/validation/rules/NoUnusedVariables.js.flow +4 -3
- package/validation/rules/NoUnusedVariables.mjs +7 -5
- package/validation/rules/OverlappingFieldsCanBeMerged.js +58 -33
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +4 -4
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +50 -34
- package/validation/rules/PossibleFragmentSpreads.js +4 -4
- package/validation/rules/PossibleFragmentSpreads.js.flow +3 -3
- package/validation/rules/PossibleFragmentSpreads.mjs +4 -4
- 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.js +3 -3
- package/validation/rules/ProvidedRequiredArguments.js.flow +4 -4
- package/validation/rules/ProvidedRequiredArguments.mjs +5 -5
- package/validation/rules/ScalarLeafs.js +4 -4
- package/validation/rules/ScalarLeafs.js.flow +3 -3
- package/validation/rules/ScalarLeafs.mjs +4 -4
- package/validation/rules/SingleFieldSubscriptions.js +2 -2
- package/validation/rules/SingleFieldSubscriptions.js.flow +1 -1
- package/validation/rules/SingleFieldSubscriptions.mjs +2 -2
- package/validation/rules/UniqueArgumentNames.js +2 -2
- package/validation/rules/UniqueArgumentNames.js.flow +1 -1
- package/validation/rules/UniqueArgumentNames.mjs +2 -2
- 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 +2 -2
- package/validation/rules/UniqueDirectivesPerLocation.js.flow +1 -1
- package/validation/rules/UniqueDirectivesPerLocation.mjs +2 -2
- package/validation/rules/UniqueEnumValueNames.js +90 -0
- package/validation/rules/UniqueEnumValueNames.js.flow +85 -0
- package/validation/rules/UniqueEnumValueNames.mjs +77 -0
- package/validation/rules/UniqueFieldDefinitionNames.js +101 -0
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +99 -0
- package/validation/rules/UniqueFieldDefinitionNames.mjs +88 -0
- package/validation/rules/UniqueFragmentNames.js +2 -2
- package/validation/rules/UniqueFragmentNames.js.flow +1 -1
- package/validation/rules/UniqueFragmentNames.mjs +2 -2
- package/validation/rules/UniqueInputFieldNames.js +2 -4
- package/validation/rules/UniqueInputFieldNames.js.flow +1 -2
- package/validation/rules/UniqueInputFieldNames.mjs +2 -4
- package/validation/rules/UniqueOperationNames.js +2 -2
- package/validation/rules/UniqueOperationNames.js.flow +1 -1
- package/validation/rules/UniqueOperationNames.mjs +2 -2
- 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 +2 -2
- package/validation/rules/UniqueVariableNames.js.flow +1 -1
- package/validation/rules/UniqueVariableNames.mjs +2 -2
- package/validation/rules/ValuesOfCorrectType.js +30 -14
- package/validation/rules/ValuesOfCorrectType.js.flow +5 -6
- package/validation/rules/ValuesOfCorrectType.mjs +29 -14
- package/validation/rules/VariablesAreInputTypes.js +3 -3
- package/validation/rules/VariablesAreInputTypes.js.flow +2 -2
- package/validation/rules/VariablesAreInputTypes.mjs +3 -3
- package/validation/rules/VariablesInAllowedPosition.js +5 -5
- package/validation/rules/VariablesInAllowedPosition.js.flow +1 -1
- package/validation/rules/VariablesInAllowedPosition.mjs +5 -5
- package/validation/specifiedRules.js +15 -3
- package/validation/specifiedRules.js.flow +14 -1
- package/validation/specifiedRules.mjs +9 -3
- package/validation/validate.js +2 -2
- package/validation/validate.js.flow +1 -1
- package/validation/validate.mjs +2 -2
- package/jsutils/find.js +0 -22
- package/jsutils/find.js.flow +0 -19
- package/jsutils/find.mjs +0 -15
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
5
3
|
*
|
|
6
4
|
* This source code is licensed under the MIT license found in the
|
|
7
5
|
* LICENSE file in the root directory of this source tree.
|
|
8
6
|
*
|
|
9
|
-
*
|
|
7
|
+
*
|
|
10
8
|
*/
|
|
9
|
+
import objectValues from '../polyfills/objectValues';
|
|
10
|
+
import inspect from '../jsutils/inspect';
|
|
11
11
|
import invariant from '../jsutils/invariant';
|
|
12
12
|
import keyMap from '../jsutils/keyMap';
|
|
13
13
|
import keyValMap from '../jsutils/keyValMap';
|
|
14
14
|
import { valueFromAST } from './valueFromAST';
|
|
15
15
|
import { assertValidSDL } from '../validation/validate';
|
|
16
|
-
import
|
|
16
|
+
import { dedentBlockStringValue } from '../language/blockString';
|
|
17
17
|
import { TokenKind } from '../language/lexer';
|
|
18
18
|
import { parse } from '../language/parser';
|
|
19
19
|
import { getDirectiveValues } from '../execution/values';
|
|
@@ -50,38 +50,53 @@ export function buildASTSchema(documentAST, options) {
|
|
|
50
50
|
|
|
51
51
|
var schemaDef;
|
|
52
52
|
var typeDefs = [];
|
|
53
|
-
var nodeMap = Object.create(null);
|
|
54
53
|
var directiveDefs = [];
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
54
|
+
var _iteratorNormalCompletion = true;
|
|
55
|
+
var _didIteratorError = false;
|
|
56
|
+
var _iteratorError = undefined;
|
|
57
|
+
|
|
58
|
+
try {
|
|
59
|
+
for (var _iterator = documentAST.definitions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
60
|
+
var def = _step.value;
|
|
61
|
+
|
|
62
|
+
if (def.kind === Kind.SCHEMA_DEFINITION) {
|
|
63
|
+
schemaDef = def;
|
|
64
|
+
} else if (isTypeDefinitionNode(def)) {
|
|
65
|
+
typeDefs.push(def);
|
|
66
|
+
} else if (def.kind === Kind.DIRECTIVE_DEFINITION) {
|
|
67
|
+
directiveDefs.push(def);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
} catch (err) {
|
|
71
|
+
_didIteratorError = true;
|
|
72
|
+
_iteratorError = err;
|
|
73
|
+
} finally {
|
|
74
|
+
try {
|
|
75
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
76
|
+
_iterator.return();
|
|
77
|
+
}
|
|
78
|
+
} finally {
|
|
79
|
+
if (_didIteratorError) {
|
|
80
|
+
throw _iteratorError;
|
|
66
81
|
}
|
|
67
|
-
|
|
68
|
-
typeDefs.push(def);
|
|
69
|
-
nodeMap[typeName] = def;
|
|
70
|
-
} else if (def.kind === Kind.DIRECTIVE_DEFINITION) {
|
|
71
|
-
directiveDefs.push(def);
|
|
72
82
|
}
|
|
73
83
|
}
|
|
74
84
|
|
|
85
|
+
var astBuilder = new ASTDefinitionBuilder(options, function (typeName) {
|
|
86
|
+
var type = typeMap[typeName];
|
|
87
|
+
!type ? invariant(0, "Type \"".concat(typeName, "\" not found in document.")) : void 0;
|
|
88
|
+
return type;
|
|
89
|
+
});
|
|
90
|
+
var typeMap = keyByNameNode(typeDefs, function (node) {
|
|
91
|
+
return astBuilder.buildType(node);
|
|
92
|
+
});
|
|
75
93
|
var operationTypes = schemaDef ? getOperationTypes(schemaDef) : {
|
|
76
|
-
query:
|
|
77
|
-
mutation:
|
|
78
|
-
subscription:
|
|
94
|
+
query: 'Query',
|
|
95
|
+
mutation: 'Mutation',
|
|
96
|
+
subscription: 'Subscription'
|
|
79
97
|
};
|
|
80
|
-
var definitionBuilder = new ASTDefinitionBuilder(nodeMap, options, function (typeRef) {
|
|
81
|
-
throw new Error("Type \"".concat(typeRef.name.value, "\" not found in document."));
|
|
82
|
-
});
|
|
83
98
|
var directives = directiveDefs.map(function (def) {
|
|
84
|
-
return
|
|
99
|
+
return astBuilder.buildDirective(def);
|
|
85
100
|
}); // If specified directives were not explicitly declared, add them.
|
|
86
101
|
|
|
87
102
|
if (!directives.some(function (directive) {
|
|
@@ -100,18 +115,16 @@ export function buildASTSchema(documentAST, options) {
|
|
|
100
115
|
return directive.name === 'deprecated';
|
|
101
116
|
})) {
|
|
102
117
|
directives.push(GraphQLDeprecatedDirective);
|
|
103
|
-
}
|
|
104
|
-
// typed values below, that would throw immediately while type system
|
|
105
|
-
// validation with validateSchema() will produce more actionable results.
|
|
106
|
-
|
|
118
|
+
}
|
|
107
119
|
|
|
108
120
|
return new GraphQLSchema({
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
121
|
+
// Note: While this could make early assertions to get the correctly
|
|
122
|
+
// typed values below, that would throw immediately while type system
|
|
123
|
+
// validation with validateSchema() will produce more actionable results.
|
|
124
|
+
query: operationTypes.query ? typeMap[operationTypes.query] : null,
|
|
125
|
+
mutation: operationTypes.mutation ? typeMap[operationTypes.mutation] : null,
|
|
126
|
+
subscription: operationTypes.subscription ? typeMap[operationTypes.subscription] : null,
|
|
127
|
+
types: objectValues(typeMap),
|
|
115
128
|
directives: directives,
|
|
116
129
|
astNode: schemaDef,
|
|
117
130
|
assumeValid: options && options.assumeValid,
|
|
@@ -120,37 +133,26 @@ export function buildASTSchema(documentAST, options) {
|
|
|
120
133
|
|
|
121
134
|
function getOperationTypes(schema) {
|
|
122
135
|
var opTypes = {};
|
|
123
|
-
var
|
|
124
|
-
var
|
|
125
|
-
var
|
|
136
|
+
var _iteratorNormalCompletion2 = true;
|
|
137
|
+
var _didIteratorError2 = false;
|
|
138
|
+
var _iteratorError2 = undefined;
|
|
126
139
|
|
|
127
140
|
try {
|
|
128
|
-
for (var
|
|
129
|
-
var operationType =
|
|
130
|
-
|
|
131
|
-
var operation = operationType.operation;
|
|
132
|
-
|
|
133
|
-
if (opTypes[operation]) {
|
|
134
|
-
throw new Error("Must provide only one ".concat(operation, " type in schema."));
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (!nodeMap[_typeName]) {
|
|
138
|
-
throw new Error("Specified ".concat(operation, " type \"").concat(_typeName, "\" not found in document."));
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
opTypes[operation] = operationType.type;
|
|
141
|
+
for (var _iterator2 = schema.operationTypes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
142
|
+
var operationType = _step2.value;
|
|
143
|
+
opTypes[operationType.operation] = operationType.type.name.value;
|
|
142
144
|
}
|
|
143
145
|
} catch (err) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
+
_didIteratorError2 = true;
|
|
147
|
+
_iteratorError2 = err;
|
|
146
148
|
} finally {
|
|
147
149
|
try {
|
|
148
|
-
if (!
|
|
149
|
-
|
|
150
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
151
|
+
_iterator2.return();
|
|
150
152
|
}
|
|
151
153
|
} finally {
|
|
152
|
-
if (
|
|
153
|
-
throw
|
|
154
|
+
if (_didIteratorError2) {
|
|
155
|
+
throw _iteratorError2;
|
|
154
156
|
}
|
|
155
157
|
}
|
|
156
158
|
}
|
|
@@ -158,89 +160,88 @@ export function buildASTSchema(documentAST, options) {
|
|
|
158
160
|
return opTypes;
|
|
159
161
|
}
|
|
160
162
|
}
|
|
163
|
+
var stdTypeMap = keyMap(specifiedScalarTypes.concat(introspectionTypes), function (type) {
|
|
164
|
+
return type.name;
|
|
165
|
+
});
|
|
161
166
|
export var ASTDefinitionBuilder =
|
|
162
167
|
/*#__PURE__*/
|
|
163
168
|
function () {
|
|
164
|
-
function ASTDefinitionBuilder(
|
|
165
|
-
_defineProperty(this, "_typeDefinitionsMap", void 0);
|
|
166
|
-
|
|
167
|
-
_defineProperty(this, "_options", void 0);
|
|
168
|
-
|
|
169
|
-
_defineProperty(this, "_resolveType", void 0);
|
|
170
|
-
|
|
171
|
-
_defineProperty(this, "_cache", void 0);
|
|
172
|
-
|
|
173
|
-
this._typeDefinitionsMap = typeDefinitionsMap;
|
|
169
|
+
function ASTDefinitionBuilder(options, resolveType) {
|
|
174
170
|
this._options = options;
|
|
175
|
-
this._resolveType = resolveType;
|
|
176
|
-
|
|
177
|
-
this._cache = keyMap(specifiedScalarTypes.concat(introspectionTypes), function (type) {
|
|
178
|
-
return type.name;
|
|
179
|
-
});
|
|
171
|
+
this._resolveType = resolveType;
|
|
180
172
|
}
|
|
181
173
|
|
|
182
174
|
var _proto = ASTDefinitionBuilder.prototype;
|
|
183
175
|
|
|
184
|
-
_proto.
|
|
185
|
-
var
|
|
186
|
-
|
|
187
|
-
if (!this._cache[typeName]) {
|
|
188
|
-
if (node.kind === Kind.NAMED_TYPE) {
|
|
189
|
-
var defNode = this._typeDefinitionsMap[typeName];
|
|
190
|
-
this._cache[typeName] = defNode ? this._makeSchemaDef(defNode) : this._resolveType(node);
|
|
191
|
-
} else {
|
|
192
|
-
this._cache[typeName] = this._makeSchemaDef(node);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
return this._cache[typeName];
|
|
176
|
+
_proto.getNamedType = function getNamedType(node) {
|
|
177
|
+
var name = node.name.value;
|
|
178
|
+
return stdTypeMap[name] || this._resolveType(name);
|
|
197
179
|
};
|
|
198
180
|
|
|
199
|
-
_proto.
|
|
200
|
-
if (
|
|
201
|
-
return GraphQLList(this.
|
|
181
|
+
_proto.getWrappedType = function getWrappedType(node) {
|
|
182
|
+
if (node.kind === Kind.LIST_TYPE) {
|
|
183
|
+
return new GraphQLList(this.getWrappedType(node.type));
|
|
202
184
|
}
|
|
203
185
|
|
|
204
|
-
if (
|
|
205
|
-
return GraphQLNonNull(
|
|
206
|
-
this._buildWrappedType(typeNode.type));
|
|
186
|
+
if (node.kind === Kind.NON_NULL_TYPE) {
|
|
187
|
+
return new GraphQLNonNull(this.getWrappedType(node.type));
|
|
207
188
|
}
|
|
208
189
|
|
|
209
|
-
return this.
|
|
190
|
+
return this.getNamedType(node);
|
|
210
191
|
};
|
|
211
192
|
|
|
212
|
-
_proto.buildDirective = function buildDirective(
|
|
193
|
+
_proto.buildDirective = function buildDirective(directive) {
|
|
194
|
+
var _this = this;
|
|
195
|
+
|
|
196
|
+
var locations = directive.locations.map(function (_ref) {
|
|
197
|
+
var value = _ref.value;
|
|
198
|
+
return value;
|
|
199
|
+
});
|
|
213
200
|
return new GraphQLDirective({
|
|
214
|
-
name:
|
|
215
|
-
description: getDescription(
|
|
216
|
-
locations:
|
|
217
|
-
|
|
201
|
+
name: directive.name.value,
|
|
202
|
+
description: getDescription(directive, this._options),
|
|
203
|
+
locations: locations,
|
|
204
|
+
args: keyByNameNode(directive.arguments || [], function (arg) {
|
|
205
|
+
return _this.buildArg(arg);
|
|
218
206
|
}),
|
|
219
|
-
|
|
220
|
-
astNode: directiveNode
|
|
207
|
+
astNode: directive
|
|
221
208
|
});
|
|
222
209
|
};
|
|
223
210
|
|
|
224
211
|
_proto.buildField = function buildField(field) {
|
|
212
|
+
var _this2 = this;
|
|
213
|
+
|
|
225
214
|
return {
|
|
226
215
|
// Note: While this could make assertions to get the correctly typed
|
|
227
216
|
// value, that would throw immediately while type system validation
|
|
228
217
|
// with validateSchema() will produce more actionable results.
|
|
229
|
-
type: this.
|
|
218
|
+
type: this.getWrappedType(field.type),
|
|
230
219
|
description: getDescription(field, this._options),
|
|
231
|
-
args: field.arguments
|
|
220
|
+
args: keyByNameNode(field.arguments || [], function (arg) {
|
|
221
|
+
return _this2.buildArg(arg);
|
|
222
|
+
}),
|
|
232
223
|
deprecationReason: getDeprecationReason(field),
|
|
233
224
|
astNode: field
|
|
234
225
|
};
|
|
235
226
|
};
|
|
236
227
|
|
|
237
|
-
_proto.
|
|
228
|
+
_proto.buildArg = function buildArg(value) {
|
|
238
229
|
// Note: While this could make assertions to get the correctly typed
|
|
239
230
|
// value, that would throw immediately while type system validation
|
|
240
|
-
var type = this.
|
|
231
|
+
var type = this.getWrappedType(value.type);
|
|
232
|
+
return {
|
|
233
|
+
type: type,
|
|
234
|
+
description: getDescription(value, this._options),
|
|
235
|
+
defaultValue: valueFromAST(value.defaultValue, type),
|
|
236
|
+
astNode: value
|
|
237
|
+
};
|
|
238
|
+
};
|
|
241
239
|
|
|
240
|
+
_proto.buildInputField = function buildInputField(value) {
|
|
241
|
+
// Note: While this could make assertions to get the correctly typed
|
|
242
|
+
// value, that would throw immediately while type system validation
|
|
243
|
+
var type = this.getWrappedType(value.type);
|
|
242
244
|
return {
|
|
243
|
-
name: value.name.value,
|
|
244
245
|
type: type,
|
|
245
246
|
description: getDescription(value, this._options),
|
|
246
247
|
defaultValue: valueFromAST(value.defaultValue, type),
|
|
@@ -256,129 +257,122 @@ function () {
|
|
|
256
257
|
};
|
|
257
258
|
};
|
|
258
259
|
|
|
259
|
-
_proto.
|
|
260
|
-
|
|
260
|
+
_proto.buildType = function buildType(astNode) {
|
|
261
|
+
var name = astNode.name.value;
|
|
262
|
+
|
|
263
|
+
if (stdTypeMap[name]) {
|
|
264
|
+
return stdTypeMap[name];
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
switch (astNode.kind) {
|
|
261
268
|
case Kind.OBJECT_TYPE_DEFINITION:
|
|
262
|
-
return this._makeTypeDef(
|
|
269
|
+
return this._makeTypeDef(astNode);
|
|
263
270
|
|
|
264
271
|
case Kind.INTERFACE_TYPE_DEFINITION:
|
|
265
|
-
return this._makeInterfaceDef(
|
|
272
|
+
return this._makeInterfaceDef(astNode);
|
|
266
273
|
|
|
267
274
|
case Kind.ENUM_TYPE_DEFINITION:
|
|
268
|
-
return this._makeEnumDef(
|
|
275
|
+
return this._makeEnumDef(astNode);
|
|
269
276
|
|
|
270
277
|
case Kind.UNION_TYPE_DEFINITION:
|
|
271
|
-
return this._makeUnionDef(
|
|
278
|
+
return this._makeUnionDef(astNode);
|
|
272
279
|
|
|
273
280
|
case Kind.SCALAR_TYPE_DEFINITION:
|
|
274
|
-
return this._makeScalarDef(
|
|
281
|
+
return this._makeScalarDef(astNode);
|
|
275
282
|
|
|
276
283
|
case Kind.INPUT_OBJECT_TYPE_DEFINITION:
|
|
277
|
-
return this._makeInputObjectDef(
|
|
284
|
+
return this._makeInputObjectDef(astNode);
|
|
285
|
+
} // Not reachable. All possible type definition nodes have been considered.
|
|
278
286
|
|
|
279
|
-
|
|
280
|
-
throw new Error("Type kind \"".concat(def.kind, "\" not supported."));
|
|
281
|
-
}
|
|
282
|
-
};
|
|
283
|
-
|
|
284
|
-
_proto._makeTypeDef = function _makeTypeDef(def) {
|
|
285
|
-
var _this = this;
|
|
286
|
-
|
|
287
|
-
var interfaces = def.interfaces;
|
|
288
|
-
return new GraphQLObjectType({
|
|
289
|
-
name: def.name.value,
|
|
290
|
-
description: getDescription(def, this._options),
|
|
291
|
-
fields: function fields() {
|
|
292
|
-
return _this._makeFieldDefMap(def);
|
|
293
|
-
},
|
|
294
|
-
// Note: While this could make early assertions to get the correctly
|
|
295
|
-
// typed values, that would throw immediately while type system
|
|
296
|
-
// validation with validateSchema() will produce more actionable results.
|
|
297
|
-
interfaces: interfaces ? function () {
|
|
298
|
-
return interfaces.map(function (ref) {
|
|
299
|
-
return _this.buildType(ref);
|
|
300
|
-
});
|
|
301
|
-
} : [],
|
|
302
|
-
astNode: def
|
|
303
|
-
});
|
|
304
|
-
};
|
|
287
|
+
/* istanbul ignore next */
|
|
305
288
|
|
|
306
|
-
_proto._makeFieldDefMap = function _makeFieldDefMap(def) {
|
|
307
|
-
var _this2 = this;
|
|
308
289
|
|
|
309
|
-
|
|
310
|
-
return field.name.value;
|
|
311
|
-
}, function (field) {
|
|
312
|
-
return _this2.buildField(field);
|
|
313
|
-
}) : {};
|
|
290
|
+
throw new Error("Unexpected type definition node: \"".concat(inspect(astNode), "\"."));
|
|
314
291
|
};
|
|
315
292
|
|
|
316
|
-
_proto.
|
|
293
|
+
_proto._makeTypeDef = function _makeTypeDef(astNode) {
|
|
317
294
|
var _this3 = this;
|
|
318
295
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
296
|
+
var interfaceNodes = astNode.interfaces;
|
|
297
|
+
var fieldNodes = astNode.fields; // Note: While this could make assertions to get the correctly typed
|
|
298
|
+
// values below, that would throw immediately while type system
|
|
299
|
+
// validation with validateSchema() will produce more actionable results.
|
|
300
|
+
|
|
301
|
+
var interfaces = interfaceNodes && interfaceNodes.length > 0 ? function () {
|
|
302
|
+
return interfaceNodes.map(function (ref) {
|
|
303
|
+
return _this3.getNamedType(ref);
|
|
304
|
+
});
|
|
305
|
+
} : [];
|
|
306
|
+
var fields = fieldNodes && fieldNodes.length > 0 ? function () {
|
|
307
|
+
return keyByNameNode(fieldNodes, function (field) {
|
|
308
|
+
return _this3.buildField(field);
|
|
309
|
+
});
|
|
310
|
+
} : Object.create(null);
|
|
311
|
+
return new GraphQLObjectType({
|
|
312
|
+
name: astNode.name.value,
|
|
313
|
+
description: getDescription(astNode, this._options),
|
|
314
|
+
interfaces: interfaces,
|
|
315
|
+
fields: fields,
|
|
316
|
+
astNode: astNode
|
|
323
317
|
});
|
|
324
318
|
};
|
|
325
319
|
|
|
326
|
-
_proto._makeInterfaceDef = function _makeInterfaceDef(
|
|
320
|
+
_proto._makeInterfaceDef = function _makeInterfaceDef(astNode) {
|
|
327
321
|
var _this4 = this;
|
|
328
322
|
|
|
323
|
+
var fieldNodes = astNode.fields;
|
|
324
|
+
var fields = fieldNodes && fieldNodes.length > 0 ? function () {
|
|
325
|
+
return keyByNameNode(fieldNodes, function (field) {
|
|
326
|
+
return _this4.buildField(field);
|
|
327
|
+
});
|
|
328
|
+
} : Object.create(null);
|
|
329
329
|
return new GraphQLInterfaceType({
|
|
330
|
-
name:
|
|
331
|
-
description: getDescription(
|
|
332
|
-
fields:
|
|
333
|
-
|
|
334
|
-
},
|
|
335
|
-
astNode: def
|
|
330
|
+
name: astNode.name.value,
|
|
331
|
+
description: getDescription(astNode, this._options),
|
|
332
|
+
fields: fields,
|
|
333
|
+
astNode: astNode
|
|
336
334
|
});
|
|
337
335
|
};
|
|
338
336
|
|
|
339
|
-
_proto._makeEnumDef = function _makeEnumDef(
|
|
340
|
-
return new GraphQLEnumType({
|
|
341
|
-
name: def.name.value,
|
|
342
|
-
description: getDescription(def, this._options),
|
|
343
|
-
values: this._makeValueDefMap(def),
|
|
344
|
-
astNode: def
|
|
345
|
-
});
|
|
346
|
-
};
|
|
347
|
-
|
|
348
|
-
_proto._makeValueDefMap = function _makeValueDefMap(def) {
|
|
337
|
+
_proto._makeEnumDef = function _makeEnumDef(astNode) {
|
|
349
338
|
var _this5 = this;
|
|
350
339
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
340
|
+
var valueNodes = astNode.values || [];
|
|
341
|
+
return new GraphQLEnumType({
|
|
342
|
+
name: astNode.name.value,
|
|
343
|
+
description: getDescription(astNode, this._options),
|
|
344
|
+
values: keyByNameNode(valueNodes, function (value) {
|
|
345
|
+
return _this5.buildEnumValue(value);
|
|
346
|
+
}),
|
|
347
|
+
astNode: astNode
|
|
348
|
+
});
|
|
356
349
|
};
|
|
357
350
|
|
|
358
|
-
_proto._makeUnionDef = function _makeUnionDef(
|
|
351
|
+
_proto._makeUnionDef = function _makeUnionDef(astNode) {
|
|
359
352
|
var _this6 = this;
|
|
360
353
|
|
|
361
|
-
var
|
|
354
|
+
var typeNodes = astNode.types; // Note: While this could make assertions to get the correctly typed
|
|
355
|
+
// values below, that would throw immediately while type system
|
|
356
|
+
// validation with validateSchema() will produce more actionable results.
|
|
357
|
+
|
|
358
|
+
var types = typeNodes && typeNodes.length > 0 ? function () {
|
|
359
|
+
return typeNodes.map(function (ref) {
|
|
360
|
+
return _this6.getNamedType(ref);
|
|
361
|
+
});
|
|
362
|
+
} : [];
|
|
362
363
|
return new GraphQLUnionType({
|
|
363
|
-
name:
|
|
364
|
-
description: getDescription(
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
// validation with validateSchema() will produce more actionable results.
|
|
368
|
-
types: types ? function () {
|
|
369
|
-
return types.map(function (ref) {
|
|
370
|
-
return _this6.buildType(ref);
|
|
371
|
-
});
|
|
372
|
-
} : [],
|
|
373
|
-
astNode: def
|
|
364
|
+
name: astNode.name.value,
|
|
365
|
+
description: getDescription(astNode, this._options),
|
|
366
|
+
types: types,
|
|
367
|
+
astNode: astNode
|
|
374
368
|
});
|
|
375
369
|
};
|
|
376
370
|
|
|
377
|
-
_proto._makeScalarDef = function _makeScalarDef(
|
|
371
|
+
_proto._makeScalarDef = function _makeScalarDef(astNode) {
|
|
378
372
|
return new GraphQLScalarType({
|
|
379
|
-
name:
|
|
380
|
-
description: getDescription(
|
|
381
|
-
astNode:
|
|
373
|
+
name: astNode.name.value,
|
|
374
|
+
description: getDescription(astNode, this._options),
|
|
375
|
+
astNode: astNode,
|
|
382
376
|
serialize: function serialize(value) {
|
|
383
377
|
return value;
|
|
384
378
|
}
|
|
@@ -388,23 +382,34 @@ function () {
|
|
|
388
382
|
_proto._makeInputObjectDef = function _makeInputObjectDef(def) {
|
|
389
383
|
var _this7 = this;
|
|
390
384
|
|
|
385
|
+
var fields = def.fields;
|
|
391
386
|
return new GraphQLInputObjectType({
|
|
392
387
|
name: def.name.value,
|
|
393
388
|
description: getDescription(def, this._options),
|
|
394
|
-
fields: function
|
|
395
|
-
return
|
|
396
|
-
|
|
389
|
+
fields: fields ? function () {
|
|
390
|
+
return keyByNameNode(fields, function (field) {
|
|
391
|
+
return _this7.buildInputField(field);
|
|
392
|
+
});
|
|
393
|
+
} : Object.create(null),
|
|
397
394
|
astNode: def
|
|
398
395
|
});
|
|
399
396
|
};
|
|
400
397
|
|
|
401
398
|
return ASTDefinitionBuilder;
|
|
402
399
|
}();
|
|
400
|
+
|
|
401
|
+
function keyByNameNode(list, valFn) {
|
|
402
|
+
return keyValMap(list, function (_ref2) {
|
|
403
|
+
var name = _ref2.name;
|
|
404
|
+
return name.value;
|
|
405
|
+
}, valFn);
|
|
406
|
+
}
|
|
403
407
|
/**
|
|
404
408
|
* Given a field or enum value node, returns the string value for the
|
|
405
409
|
* deprecation reason.
|
|
406
410
|
*/
|
|
407
411
|
|
|
412
|
+
|
|
408
413
|
function getDeprecationReason(node) {
|
|
409
414
|
var deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node);
|
|
410
415
|
return deprecated && deprecated.reason;
|
|
@@ -430,7 +435,7 @@ export function getDescription(node, options) {
|
|
|
430
435
|
var rawValue = getLeadingCommentBlock(node);
|
|
431
436
|
|
|
432
437
|
if (rawValue !== undefined) {
|
|
433
|
-
return
|
|
438
|
+
return dedentBlockStringValue('\n' + rawValue);
|
|
434
439
|
}
|
|
435
440
|
}
|
|
436
441
|
}
|