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
package/type/schema.mjs
CHANGED
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
2
2
|
|
|
3
|
-
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; }
|
|
4
|
-
|
|
5
3
|
/**
|
|
6
|
-
* Copyright (c)
|
|
4
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
7
5
|
*
|
|
8
6
|
* This source code is licensed under the MIT license found in the
|
|
9
7
|
* LICENSE file in the root directory of this source tree.
|
|
10
8
|
*
|
|
11
|
-
*
|
|
9
|
+
*
|
|
12
10
|
*/
|
|
11
|
+
import find from '../polyfills/find';
|
|
12
|
+
import objectValues from '../polyfills/objectValues';
|
|
13
13
|
import { isAbstractType, isObjectType, isInterfaceType, isUnionType, isInputObjectType, isWrappingType } from './definition';
|
|
14
14
|
import { GraphQLDirective, isDirective, specifiedDirectives } from './directives';
|
|
15
15
|
import inspect from '../jsutils/inspect';
|
|
16
16
|
import { __Schema } from './introspection';
|
|
17
17
|
import defineToStringTag from '../jsutils/defineToStringTag';
|
|
18
|
-
import find from '../jsutils/find';
|
|
19
18
|
import instanceOf from '../jsutils/instanceOf';
|
|
20
19
|
import invariant from '../jsutils/invariant';
|
|
21
|
-
import objectValues from '../jsutils/objectValues';
|
|
22
20
|
// eslint-disable-next-line no-redeclare
|
|
23
21
|
export function isSchema(schema) {
|
|
24
22
|
return instanceOf(schema, GraphQLSchema);
|
|
25
23
|
}
|
|
24
|
+
export function assertSchema(schema) {
|
|
25
|
+
!isSchema(schema) ? invariant(0, "Expected ".concat(inspect(schema), " to be a GraphQL schema.")) : void 0;
|
|
26
|
+
return schema;
|
|
27
|
+
}
|
|
26
28
|
/**
|
|
27
29
|
* Schema Definition
|
|
28
30
|
*
|
|
@@ -37,6 +39,43 @@ export function isSchema(schema) {
|
|
|
37
39
|
* mutation: MyAppMutationRootType,
|
|
38
40
|
* })
|
|
39
41
|
*
|
|
42
|
+
* Note: When the schema is constructed, by default only the types that are
|
|
43
|
+
* reachable by traversing the root types are included, other types must be
|
|
44
|
+
* explicitly referenced.
|
|
45
|
+
*
|
|
46
|
+
* Example:
|
|
47
|
+
*
|
|
48
|
+
* const characterInterface = new GraphQLInterfaceType({
|
|
49
|
+
* name: 'Character',
|
|
50
|
+
* ...
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* const humanType = new GraphQLObjectType({
|
|
54
|
+
* name: 'Human',
|
|
55
|
+
* interfaces: [characterInterface],
|
|
56
|
+
* ...
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* const droidType = new GraphQLObjectType({
|
|
60
|
+
* name: 'Droid',
|
|
61
|
+
* interfaces: [characterInterface],
|
|
62
|
+
* ...
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* const schema = new GraphQLSchema({
|
|
66
|
+
* query: new GraphQLObjectType({
|
|
67
|
+
* name: 'Query',
|
|
68
|
+
* fields: {
|
|
69
|
+
* hero: { type: characterInterface, ... },
|
|
70
|
+
* }
|
|
71
|
+
* }),
|
|
72
|
+
* ...
|
|
73
|
+
* // Since this schema references only the `Character` interface it's
|
|
74
|
+
* // necessary to explicitly list the types that implement it if
|
|
75
|
+
* // you want them to be included in the final schema.
|
|
76
|
+
* types: [humanType, droidType],
|
|
77
|
+
* })
|
|
78
|
+
*
|
|
40
79
|
* Note: If an array of `directives` are provided to GraphQLSchema, that will be
|
|
41
80
|
* the exact list of directives represented and allowed. If `directives` is not
|
|
42
81
|
* provided then a default set of the specified directives (e.g. @include and
|
|
@@ -56,35 +95,14 @@ function () {
|
|
|
56
95
|
// Used as a cache for validateSchema().
|
|
57
96
|
// Referenced by validateSchema().
|
|
58
97
|
function GraphQLSchema(config) {
|
|
59
|
-
_defineProperty(this, "astNode", void 0);
|
|
60
|
-
|
|
61
|
-
_defineProperty(this, "extensionASTNodes", void 0);
|
|
62
|
-
|
|
63
|
-
_defineProperty(this, "_queryType", void 0);
|
|
64
|
-
|
|
65
|
-
_defineProperty(this, "_mutationType", void 0);
|
|
66
|
-
|
|
67
|
-
_defineProperty(this, "_subscriptionType", void 0);
|
|
68
|
-
|
|
69
|
-
_defineProperty(this, "_directives", void 0);
|
|
70
|
-
|
|
71
|
-
_defineProperty(this, "_typeMap", void 0);
|
|
72
|
-
|
|
73
|
-
_defineProperty(this, "_implementations", void 0);
|
|
74
|
-
|
|
75
|
-
_defineProperty(this, "_possibleTypeMap", void 0);
|
|
76
|
-
|
|
77
|
-
_defineProperty(this, "__validationErrors", void 0);
|
|
78
|
-
|
|
79
|
-
_defineProperty(this, "__allowedLegacyNames", void 0);
|
|
80
|
-
|
|
81
98
|
// If this schema was built from a source known to be valid, then it may be
|
|
82
99
|
// marked with assumeValid to avoid an additional type system validation.
|
|
83
100
|
if (config && config.assumeValid) {
|
|
84
101
|
this.__validationErrors = [];
|
|
85
102
|
} else {
|
|
86
|
-
// Otherwise check for common mistakes during construction to produce
|
|
103
|
+
this.__validationErrors = undefined; // Otherwise check for common mistakes during construction to produce
|
|
87
104
|
// clear and early error messages.
|
|
105
|
+
|
|
88
106
|
!(_typeof(config) === 'object') ? invariant(0, 'Must provide configuration object.') : void 0;
|
|
89
107
|
!(!config.types || Array.isArray(config.types)) ? invariant(0, "\"types\" must be Array if provided but got: ".concat(inspect(config.types), ".")) : void 0;
|
|
90
108
|
!(!config.directives || Array.isArray(config.directives)) ? invariant(0, '"directives" must be Array if provided but got: ' + "".concat(inspect(config.directives), ".")) : void 0;
|
|
@@ -114,51 +132,67 @@ function () {
|
|
|
114
132
|
|
|
115
133
|
typeMap = this._directives.reduce(typeMapDirectiveReducer, typeMap); // Storing the resulting map for reference by the schema.
|
|
116
134
|
|
|
117
|
-
this._typeMap = typeMap;
|
|
135
|
+
this._typeMap = typeMap;
|
|
136
|
+
this._possibleTypeMap = Object.create(null); // Keep track of all implementations by interface name.
|
|
118
137
|
|
|
119
138
|
this._implementations = Object.create(null);
|
|
139
|
+
var _iteratorNormalCompletion = true;
|
|
140
|
+
var _didIteratorError = false;
|
|
141
|
+
var _iteratorError = undefined;
|
|
120
142
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
var typeName = _arr[_i];
|
|
125
|
-
var type = this._typeMap[typeName];
|
|
143
|
+
try {
|
|
144
|
+
for (var _iterator = objectValues(this._typeMap)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
145
|
+
var type = _step.value;
|
|
126
146
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
147
|
+
if (isObjectType(type)) {
|
|
148
|
+
var _iteratorNormalCompletion2 = true;
|
|
149
|
+
var _didIteratorError2 = false;
|
|
150
|
+
var _iteratorError2 = undefined;
|
|
131
151
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
152
|
+
try {
|
|
153
|
+
for (var _iterator2 = type.getInterfaces()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
154
|
+
var iface = _step2.value;
|
|
135
155
|
|
|
136
|
-
|
|
137
|
-
|
|
156
|
+
if (isInterfaceType(iface)) {
|
|
157
|
+
var impls = this._implementations[iface.name];
|
|
138
158
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
159
|
+
if (impls) {
|
|
160
|
+
impls.push(type);
|
|
161
|
+
} else {
|
|
162
|
+
this._implementations[iface.name] = [type];
|
|
163
|
+
}
|
|
143
164
|
}
|
|
144
165
|
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
_iteratorError = err;
|
|
149
|
-
} finally {
|
|
150
|
-
try {
|
|
151
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
152
|
-
_iterator.return();
|
|
153
|
-
}
|
|
166
|
+
} catch (err) {
|
|
167
|
+
_didIteratorError2 = true;
|
|
168
|
+
_iteratorError2 = err;
|
|
154
169
|
} finally {
|
|
155
|
-
|
|
156
|
-
|
|
170
|
+
try {
|
|
171
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
172
|
+
_iterator2.return();
|
|
173
|
+
}
|
|
174
|
+
} finally {
|
|
175
|
+
if (_didIteratorError2) {
|
|
176
|
+
throw _iteratorError2;
|
|
177
|
+
}
|
|
157
178
|
}
|
|
158
179
|
}
|
|
180
|
+
} else if (isAbstractType(type) && !this._implementations[type.name]) {
|
|
181
|
+
this._implementations[type.name] = [];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
} catch (err) {
|
|
185
|
+
_didIteratorError = true;
|
|
186
|
+
_iteratorError = err;
|
|
187
|
+
} finally {
|
|
188
|
+
try {
|
|
189
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
190
|
+
_iterator.return();
|
|
191
|
+
}
|
|
192
|
+
} finally {
|
|
193
|
+
if (_didIteratorError) {
|
|
194
|
+
throw _iteratorError;
|
|
159
195
|
}
|
|
160
|
-
} else if (isAbstractType(type) && !this._implementations[type.name]) {
|
|
161
|
-
this._implementations[type.name] = [];
|
|
162
196
|
}
|
|
163
197
|
}
|
|
164
198
|
}
|
|
@@ -196,10 +230,6 @@ function () {
|
|
|
196
230
|
_proto.isPossibleType = function isPossibleType(abstractType, possibleType) {
|
|
197
231
|
var possibleTypeMap = this._possibleTypeMap;
|
|
198
232
|
|
|
199
|
-
if (!possibleTypeMap) {
|
|
200
|
-
this._possibleTypeMap = possibleTypeMap = Object.create(null);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
233
|
if (!possibleTypeMap[abstractType.name]) {
|
|
204
234
|
var possibleTypes = this.getPossibleTypes(abstractType);
|
|
205
235
|
possibleTypeMap[abstractType.name] = possibleTypes.reduce(function (map, type) {
|
|
@@ -220,6 +250,20 @@ function () {
|
|
|
220
250
|
});
|
|
221
251
|
};
|
|
222
252
|
|
|
253
|
+
_proto.toConfig = function toConfig() {
|
|
254
|
+
return {
|
|
255
|
+
types: objectValues(this.getTypeMap()),
|
|
256
|
+
directives: this.getDirectives().slice(),
|
|
257
|
+
query: this.getQueryType(),
|
|
258
|
+
mutation: this.getMutationType(),
|
|
259
|
+
subscription: this.getSubscriptionType(),
|
|
260
|
+
astNode: this.astNode,
|
|
261
|
+
extensionASTNodes: this.extensionASTNodes || [],
|
|
262
|
+
assumeValid: this.__validationErrors !== undefined,
|
|
263
|
+
allowedLegacyNames: this.__allowedLegacyNames
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
|
|
223
267
|
return GraphQLSchema;
|
|
224
268
|
}(); // Conditionally apply `[Symbol.toStringTag]` if `Symbol`s are supported
|
|
225
269
|
|
|
@@ -235,7 +279,7 @@ function typeMapReducer(map, type) {
|
|
|
235
279
|
}
|
|
236
280
|
|
|
237
281
|
if (map[type.name]) {
|
|
238
|
-
!(map[type.name] === type) ? invariant(0, 'Schema must contain
|
|
282
|
+
!(map[type.name] === type) ? invariant(0, 'Schema must contain uniquely named types but contains multiple ' + "types named \"".concat(type.name, "\".")) : void 0;
|
|
239
283
|
return map;
|
|
240
284
|
}
|
|
241
285
|
|
|
@@ -251,13 +295,13 @@ function typeMapReducer(map, type) {
|
|
|
251
295
|
}
|
|
252
296
|
|
|
253
297
|
if (isObjectType(type) || isInterfaceType(type)) {
|
|
254
|
-
var
|
|
255
|
-
var
|
|
256
|
-
var
|
|
298
|
+
var _iteratorNormalCompletion3 = true;
|
|
299
|
+
var _didIteratorError3 = false;
|
|
300
|
+
var _iteratorError3 = undefined;
|
|
257
301
|
|
|
258
302
|
try {
|
|
259
|
-
for (var
|
|
260
|
-
var field =
|
|
303
|
+
for (var _iterator3 = objectValues(type.getFields())[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
|
304
|
+
var field = _step3.value;
|
|
261
305
|
|
|
262
306
|
if (field.args) {
|
|
263
307
|
var fieldArgTypes = field.args.map(function (arg) {
|
|
@@ -269,42 +313,42 @@ function typeMapReducer(map, type) {
|
|
|
269
313
|
reducedMap = typeMapReducer(reducedMap, field.type);
|
|
270
314
|
}
|
|
271
315
|
} catch (err) {
|
|
272
|
-
|
|
273
|
-
|
|
316
|
+
_didIteratorError3 = true;
|
|
317
|
+
_iteratorError3 = err;
|
|
274
318
|
} finally {
|
|
275
319
|
try {
|
|
276
|
-
if (!
|
|
277
|
-
|
|
320
|
+
if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
|
|
321
|
+
_iterator3.return();
|
|
278
322
|
}
|
|
279
323
|
} finally {
|
|
280
|
-
if (
|
|
281
|
-
throw
|
|
324
|
+
if (_didIteratorError3) {
|
|
325
|
+
throw _iteratorError3;
|
|
282
326
|
}
|
|
283
327
|
}
|
|
284
328
|
}
|
|
285
329
|
}
|
|
286
330
|
|
|
287
331
|
if (isInputObjectType(type)) {
|
|
288
|
-
var
|
|
289
|
-
var
|
|
290
|
-
var
|
|
332
|
+
var _iteratorNormalCompletion4 = true;
|
|
333
|
+
var _didIteratorError4 = false;
|
|
334
|
+
var _iteratorError4 = undefined;
|
|
291
335
|
|
|
292
336
|
try {
|
|
293
|
-
for (var
|
|
294
|
-
var _field =
|
|
337
|
+
for (var _iterator4 = objectValues(type.getFields())[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
|
338
|
+
var _field = _step4.value;
|
|
295
339
|
reducedMap = typeMapReducer(reducedMap, _field.type);
|
|
296
340
|
}
|
|
297
341
|
} catch (err) {
|
|
298
|
-
|
|
299
|
-
|
|
342
|
+
_didIteratorError4 = true;
|
|
343
|
+
_iteratorError4 = err;
|
|
300
344
|
} finally {
|
|
301
345
|
try {
|
|
302
|
-
if (!
|
|
303
|
-
|
|
346
|
+
if (!_iteratorNormalCompletion4 && _iterator4.return != null) {
|
|
347
|
+
_iterator4.return();
|
|
304
348
|
}
|
|
305
349
|
} finally {
|
|
306
|
-
if (
|
|
307
|
-
throw
|
|
350
|
+
if (_didIteratorError4) {
|
|
351
|
+
throw _iteratorError4;
|
|
308
352
|
}
|
|
309
353
|
}
|
|
310
354
|
}
|