graphql 0.0.1-test.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 +21 -0
- package/NotSupportedTSVersion.d.ts +1 -0
- package/README.md +158 -0
- package/error/GraphQLError.d.ts +142 -0
- package/error/GraphQLError.js +267 -0
- package/error/GraphQLError.mjs +253 -0
- package/error/index.d.ts +7 -0
- package/error/index.js +41 -0
- package/error/index.mjs +3 -0
- package/error/locatedError.d.ts +13 -0
- package/error/locatedError.js +40 -0
- package/error/locatedError.mjs +32 -0
- package/error/syntaxError.d.ts +11 -0
- package/error/syntaxError.js +21 -0
- package/error/syntaxError.mjs +11 -0
- package/execution/collectFields.d.ts +45 -0
- package/execution/collectFields.js +229 -0
- package/execution/collectFields.mjs +213 -0
- package/execution/execute.d.ts +185 -0
- package/execution/execute.js +1016 -0
- package/execution/execute.mjs +988 -0
- package/execution/index.d.ts +14 -0
- package/execution/index.js +67 -0
- package/execution/index.mjs +9 -0
- package/execution/mapAsyncIterator.d.ts +9 -0
- package/execution/mapAsyncIterator.js +68 -0
- package/execution/mapAsyncIterator.mjs +61 -0
- package/execution/subscribe.d.ts +68 -0
- package/execution/subscribe.js +261 -0
- package/execution/subscribe.mjs +239 -0
- package/execution/values.d.ts +81 -0
- package/execution/values.js +292 -0
- package/execution/values.mjs +255 -0
- package/graphql.d.ts +67 -0
- package/graphql.js +96 -0
- package/graphql.mjs +122 -0
- package/index.d.ts +411 -0
- package/index.js +1263 -0
- package/index.mjs +254 -0
- package/jsutils/Maybe.d.ts +2 -0
- package/jsutils/Maybe.js +5 -0
- package/jsutils/Maybe.mjs +1 -0
- package/jsutils/ObjMap.d.ts +16 -0
- package/jsutils/ObjMap.js +5 -0
- package/jsutils/ObjMap.mjs +1 -0
- package/jsutils/Path.d.ts +20 -0
- package/jsutils/Path.js +33 -0
- package/jsutils/Path.mjs +25 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/PromiseOrValue.js +5 -0
- package/jsutils/PromiseOrValue.mjs +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js +14 -0
- package/jsutils/devAssert.mjs +7 -0
- package/jsutils/didYouMean.d.ts +8 -0
- package/jsutils/didYouMean.js +38 -0
- package/jsutils/didYouMean.mjs +32 -0
- package/jsutils/groupBy.d.ts +7 -0
- package/jsutils/groupBy.js +26 -0
- package/jsutils/groupBy.mjs +19 -0
- package/jsutils/identityFunc.d.ts +4 -0
- package/jsutils/identityFunc.js +13 -0
- package/jsutils/identityFunc.mjs +6 -0
- package/jsutils/inspect.d.ts +4 -0
- package/jsutils/inspect.js +121 -0
- package/jsutils/inspect.mjs +115 -0
- package/jsutils/instanceOf.d.ts +16 -0
- package/jsutils/instanceOf.js +60 -0
- package/jsutils/instanceOf.mjs +52 -0
- package/jsutils/invariant.d.ts +4 -0
- package/jsutils/invariant.js +16 -0
- package/jsutils/invariant.mjs +9 -0
- package/jsutils/isAsyncIterable.d.ts +7 -0
- package/jsutils/isAsyncIterable.js +18 -0
- package/jsutils/isAsyncIterable.mjs +11 -0
- package/jsutils/isIterableObject.d.ts +20 -0
- package/jsutils/isIterableObject.js +32 -0
- package/jsutils/isIterableObject.mjs +25 -0
- package/jsutils/isObjectLike.d.ts +7 -0
- package/jsutils/isObjectLike.js +14 -0
- package/jsutils/isObjectLike.mjs +7 -0
- package/jsutils/isPromise.d.ts +5 -0
- package/jsutils/isPromise.js +17 -0
- package/jsutils/isPromise.mjs +10 -0
- package/jsutils/keyMap.d.ts +32 -0
- package/jsutils/keyMap.js +43 -0
- package/jsutils/keyMap.mjs +36 -0
- package/jsutils/keyValMap.d.ts +23 -0
- package/jsutils/keyValMap.js +33 -0
- package/jsutils/keyValMap.mjs +26 -0
- package/jsutils/mapValue.d.ts +9 -0
- package/jsutils/mapValue.js +20 -0
- package/jsutils/mapValue.mjs +13 -0
- package/jsutils/memoize3.d.ts +9 -0
- package/jsutils/memoize3.js +41 -0
- package/jsutils/memoize3.mjs +34 -0
- package/jsutils/naturalCompare.d.ts +8 -0
- package/jsutils/naturalCompare.js +69 -0
- package/jsutils/naturalCompare.mjs +61 -0
- package/jsutils/printPathArray.d.ts +6 -0
- package/jsutils/printPathArray.js +17 -0
- package/jsutils/printPathArray.mjs +10 -0
- package/jsutils/promiseForObject.d.ts +11 -0
- package/jsutils/promiseForObject.js +25 -0
- package/jsutils/promiseForObject.mjs +18 -0
- package/jsutils/promiseReduce.d.ts +13 -0
- package/jsutils/promiseReduce.js +27 -0
- package/jsutils/promiseReduce.mjs +20 -0
- package/jsutils/suggestionList.d.ts +8 -0
- package/jsutils/suggestionList.js +139 -0
- package/jsutils/suggestionList.mjs +130 -0
- package/jsutils/toError.d.ts +4 -0
- package/jsutils/toError.js +25 -0
- package/jsutils/toError.mjs +18 -0
- package/jsutils/toObjMap.d.ts +5 -0
- package/jsutils/toObjMap.js +24 -0
- package/jsutils/toObjMap.mjs +17 -0
- package/language/ast.d.ts +536 -0
- package/language/ast.js +224 -0
- package/language/ast.mjs +206 -0
- package/language/blockString.d.ts +28 -0
- package/language/blockString.js +195 -0
- package/language/blockString.mjs +178 -0
- package/language/characterClasses.d.ts +47 -0
- package/language/characterClasses.js +75 -0
- package/language/characterClasses.mjs +64 -0
- package/language/directiveLocation.d.ts +32 -0
- package/language/directiveLocation.js +40 -0
- package/language/directiveLocation.mjs +31 -0
- package/language/index.d.ts +97 -0
- package/language/index.js +215 -0
- package/language/index.mjs +29 -0
- package/language/kinds.d.ts +65 -0
- package/language/kinds.js +64 -0
- package/language/kinds.mjs +55 -0
- package/language/lexer.d.ts +45 -0
- package/language/lexer.js +1006 -0
- package/language/lexer.mjs +902 -0
- package/language/location.d.ts +16 -0
- package/language/location.js +38 -0
- package/language/location.mjs +30 -0
- package/language/parser.d.ts +554 -0
- package/language/parser.js +1567 -0
- package/language/parser.mjs +1524 -0
- package/language/predicates.d.ts +33 -0
- package/language/predicates.js +109 -0
- package/language/predicates.mjs +81 -0
- package/language/printLocation.d.ts +14 -0
- package/language/printLocation.js +74 -0
- package/language/printLocation.mjs +66 -0
- package/language/printString.d.ts +5 -0
- package/language/printString.js +183 -0
- package/language/printString.mjs +176 -0
- package/language/printer.d.ts +6 -0
- package/language/printer.js +351 -0
- package/language/printer.mjs +339 -0
- package/language/source.d.ts +25 -0
- package/language/source.js +65 -0
- package/language/source.mjs +50 -0
- package/language/tokenKind.d.ts +34 -0
- package/language/tokenKind.js +44 -0
- package/language/tokenKind.mjs +35 -0
- package/language/visitor.d.ts +194 -0
- package/language/visitor.js +377 -0
- package/language/visitor.mjs +361 -0
- package/package.json +40 -0
- package/subscription/index.d.ts +19 -0
- package/subscription/index.js +19 -0
- package/subscription/index.mjs +19 -0
- package/type/assertName.d.ts +10 -0
- package/type/assertName.js +59 -0
- package/type/assertName.mjs +44 -0
- package/type/definition.d.ts +917 -0
- package/type/definition.js +1329 -0
- package/type/definition.mjs +1167 -0
- package/type/directives.d.ts +86 -0
- package/type/directives.js +224 -0
- package/type/directives.mjs +190 -0
- package/type/index.d.ts +150 -0
- package/type/index.js +547 -0
- package/type/index.mjs +103 -0
- package/type/introspection.d.ts +29 -0
- package/type/introspection.js +617 -0
- package/type/introspection.mjs +550 -0
- package/type/scalars.d.ts +19 -0
- package/type/scalars.js +359 -0
- package/type/scalars.mjs +299 -0
- package/type/schema.d.ts +170 -0
- package/type/schema.js +402 -0
- package/type/schema.mjs +381 -0
- package/type/validate.d.ts +17 -0
- package/type/validate.js +672 -0
- package/type/validate.mjs +647 -0
- package/utilities/TypeInfo.d.ts +67 -0
- package/utilities/TypeInfo.js +418 -0
- package/utilities/TypeInfo.mjs +395 -0
- package/utilities/assertValidName.d.ts +13 -0
- package/utilities/assertValidName.js +51 -0
- package/utilities/assertValidName.mjs +40 -0
- package/utilities/astFromValue.d.ts +28 -0
- package/utilities/astFromValue.js +190 -0
- package/utilities/astFromValue.mjs +177 -0
- package/utilities/buildASTSchema.d.ts +35 -0
- package/utilities/buildASTSchema.js +115 -0
- package/utilities/buildASTSchema.mjs +97 -0
- package/utilities/buildClientSchema.d.ts +19 -0
- package/utilities/buildClientSchema.js +386 -0
- package/utilities/buildClientSchema.mjs +363 -0
- package/utilities/coerceInputValue.d.ts +16 -0
- package/utilities/coerceInputValue.js +191 -0
- package/utilities/coerceInputValue.mjs +172 -0
- package/utilities/concatAST.d.ts +9 -0
- package/utilities/concatAST.js +26 -0
- package/utilities/concatAST.mjs +19 -0
- package/utilities/extendSchema.d.ts +40 -0
- package/utilities/extendSchema.js +798 -0
- package/utilities/extendSchema.mjs +789 -0
- package/utilities/findBreakingChanges.d.ts +51 -0
- package/utilities/findBreakingChanges.js +547 -0
- package/utilities/findBreakingChanges.mjs +516 -0
- package/utilities/getIntrospectionQuery.d.ts +182 -0
- package/utilities/getIntrospectionQuery.js +134 -0
- package/utilities/getIntrospectionQuery.mjs +127 -0
- package/utilities/getOperationAST.d.ts +11 -0
- package/utilities/getOperationAST.js +43 -0
- package/utilities/getOperationAST.mjs +36 -0
- package/utilities/getOperationRootType.d.ts +15 -0
- package/utilities/getOperationRootType.js +59 -0
- package/utilities/getOperationRootType.mjs +52 -0
- package/utilities/index.d.ts +61 -0
- package/utilities/index.js +233 -0
- package/utilities/index.mjs +55 -0
- package/utilities/introspectionFromSchema.d.ts +18 -0
- package/utilities/introspectionFromSchema.js +42 -0
- package/utilities/introspectionFromSchema.mjs +30 -0
- package/utilities/lexicographicSortSchema.d.ts +9 -0
- package/utilities/lexicographicSortSchema.js +177 -0
- package/utilities/lexicographicSortSchema.mjs +172 -0
- package/utilities/printSchema.d.ts +5 -0
- package/utilities/printSchema.js +333 -0
- package/utilities/printSchema.mjs +309 -0
- package/utilities/separateOperations.d.ts +11 -0
- package/utilities/separateOperations.js +88 -0
- package/utilities/separateOperations.mjs +80 -0
- package/utilities/sortValueNode.d.ts +9 -0
- package/utilities/sortValueNode.js +47 -0
- package/utilities/sortValueNode.mjs +39 -0
- package/utilities/stripIgnoredCharacters.d.ts +62 -0
- package/utilities/stripIgnoredCharacters.js +121 -0
- package/utilities/stripIgnoredCharacters.mjs +104 -0
- package/utilities/typeComparators.d.ts +32 -0
- package/utilities/typeComparators.js +116 -0
- package/utilities/typeComparators.mjs +106 -0
- package/utilities/typeFromAST.d.ts +32 -0
- package/utilities/typeFromAST.js +27 -0
- package/utilities/typeFromAST.mjs +18 -0
- package/utilities/typedQueryDocumentNode.d.ts +22 -0
- package/utilities/typedQueryDocumentNode.js +5 -0
- package/utilities/typedQueryDocumentNode.mjs +1 -0
- package/utilities/valueFromAST.d.ts +29 -0
- package/utilities/valueFromAST.js +185 -0
- package/utilities/valueFromAST.mjs +172 -0
- package/utilities/valueFromASTUntyped.d.ts +23 -0
- package/utilities/valueFromASTUntyped.js +61 -0
- package/utilities/valueFromASTUntyped.mjs +53 -0
- package/validation/ValidationContext.d.ts +95 -0
- package/validation/ValidationContext.js +232 -0
- package/validation/ValidationContext.mjs +212 -0
- package/validation/index.d.ts +40 -0
- package/validation/index.js +317 -0
- package/validation/index.mjs +68 -0
- package/validation/rules/ExecutableDefinitionsRule.d.ts +13 -0
- package/validation/rules/ExecutableDefinitionsRule.js +44 -0
- package/validation/rules/ExecutableDefinitionsRule.mjs +35 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +13 -0
- package/validation/rules/FieldsOnCorrectTypeRule.js +143 -0
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +125 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +14 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.js +65 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +49 -0
- package/validation/rules/KnownArgumentNamesRule.d.ts +23 -0
- package/validation/rules/KnownArgumentNamesRule.js +116 -0
- package/validation/rules/KnownArgumentNamesRule.mjs +98 -0
- package/validation/rules/KnownDirectivesRule.d.ts +16 -0
- package/validation/rules/KnownDirectivesRule.js +163 -0
- package/validation/rules/KnownDirectivesRule.mjs +146 -0
- package/validation/rules/KnownFragmentNamesRule.d.ts +13 -0
- package/validation/rules/KnownFragmentNamesRule.js +34 -0
- package/validation/rules/KnownFragmentNamesRule.mjs +24 -0
- package/validation/rules/KnownTypeNamesRule.d.ts +16 -0
- package/validation/rules/KnownTypeNamesRule.js +87 -0
- package/validation/rules/KnownTypeNamesRule.mjs +75 -0
- package/validation/rules/LoneAnonymousOperationRule.d.ts +13 -0
- package/validation/rules/LoneAnonymousOperationRule.js +40 -0
- package/validation/rules/LoneAnonymousOperationRule.mjs +32 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +10 -0
- package/validation/rules/LoneSchemaDefinitionRule.js +63 -0
- package/validation/rules/LoneSchemaDefinitionRule.mjs +53 -0
- package/validation/rules/NoFragmentCyclesRule.d.ts +13 -0
- package/validation/rules/NoFragmentCyclesRule.js +83 -0
- package/validation/rules/NoFragmentCyclesRule.mjs +76 -0
- package/validation/rules/NoUndefinedVariablesRule.d.ts +13 -0
- package/validation/rules/NoUndefinedVariablesRule.js +50 -0
- package/validation/rules/NoUndefinedVariablesRule.mjs +43 -0
- package/validation/rules/NoUnusedFragmentsRule.d.ts +13 -0
- package/validation/rules/NoUnusedFragmentsRule.js +59 -0
- package/validation/rules/NoUnusedFragmentsRule.mjs +52 -0
- package/validation/rules/NoUnusedVariablesRule.d.ts +13 -0
- package/validation/rules/NoUnusedVariablesRule.js +55 -0
- package/validation/rules/NoUnusedVariablesRule.mjs +48 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule-old.js +805 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule-old.mjs +788 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +14 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +805 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +788 -0
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +12 -0
- package/validation/rules/PossibleFragmentSpreadsRule.js +91 -0
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +69 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +10 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +167 -0
- package/validation/rules/PossibleTypeExtensionsRule.mjs +147 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +20 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.js +158 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +138 -0
- package/validation/rules/ScalarLeafsRule.d.ts +9 -0
- package/validation/rules/ScalarLeafsRule.js +51 -0
- package/validation/rules/ScalarLeafsRule.mjs +42 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +13 -0
- package/validation/rules/SingleFieldSubscriptionsRule.js +82 -0
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +73 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +11 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +90 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +79 -0
- package/validation/rules/UniqueArgumentNamesRule.d.ts +13 -0
- package/validation/rules/UniqueArgumentNamesRule.js +53 -0
- package/validation/rules/UniqueArgumentNamesRule.mjs +42 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +10 -0
- package/validation/rules/UniqueDirectiveNamesRule.js +50 -0
- package/validation/rules/UniqueDirectiveNamesRule.mjs +43 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +16 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.js +93 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +83 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +10 -0
- package/validation/rules/UniqueEnumValueNamesRule.js +71 -0
- package/validation/rules/UniqueEnumValueNamesRule.mjs +60 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +10 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +83 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +75 -0
- package/validation/rules/UniqueFragmentNamesRule.d.ts +12 -0
- package/validation/rules/UniqueFragmentNamesRule.js +39 -0
- package/validation/rules/UniqueFragmentNamesRule.mjs +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +13 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +52 -0
- package/validation/rules/UniqueInputFieldNamesRule.mjs +44 -0
- package/validation/rules/UniqueOperationNamesRule.d.ts +12 -0
- package/validation/rules/UniqueOperationNamesRule.js +41 -0
- package/validation/rules/UniqueOperationNamesRule.mjs +34 -0
- package/validation/rules/UniqueOperationTypesRule.d.ts +10 -0
- package/validation/rules/UniqueOperationTypesRule.js +67 -0
- package/validation/rules/UniqueOperationTypesRule.mjs +60 -0
- package/validation/rules/UniqueTypeNamesRule.d.ts +10 -0
- package/validation/rules/UniqueTypeNamesRule.js +53 -0
- package/validation/rules/UniqueTypeNamesRule.mjs +46 -0
- package/validation/rules/UniqueVariableNamesRule.d.ts +10 -0
- package/validation/rules/UniqueVariableNamesRule.js +47 -0
- package/validation/rules/UniqueVariableNamesRule.mjs +39 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +13 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +183 -0
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +164 -0
- package/validation/rules/VariablesAreInputTypesRule.d.ts +13 -0
- package/validation/rules/VariablesAreInputTypesRule.js +44 -0
- package/validation/rules/VariablesAreInputTypesRule.mjs +31 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +12 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +114 -0
- package/validation/rules/VariablesInAllowedPositionRule.mjs +95 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +15 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +121 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +107 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +15 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +39 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +30 -0
- package/validation/specifiedRules.d.ts +12 -0
- package/validation/specifiedRules.js +160 -0
- package/validation/specifiedRules.mjs +123 -0
- package/validation/validate.d.ts +61 -0
- package/validation/validate.js +151 -0
- package/validation/validate.mjs +133 -0
- package/version.d.ts +13 -0
- package/version.js +25 -0
- package/version.mjs +17 -0
package/type/schema.d.ts
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import type { Maybe } from '../jsutils/Maybe';
|
|
2
|
+
import type { ObjMap } from '../jsutils/ObjMap';
|
|
3
|
+
import type { GraphQLError } from '../error/GraphQLError';
|
|
4
|
+
import type {
|
|
5
|
+
SchemaDefinitionNode,
|
|
6
|
+
SchemaExtensionNode,
|
|
7
|
+
} from '../language/ast';
|
|
8
|
+
import { OperationTypeNode } from '../language/ast';
|
|
9
|
+
import type {
|
|
10
|
+
GraphQLAbstractType,
|
|
11
|
+
GraphQLInterfaceType,
|
|
12
|
+
GraphQLNamedType,
|
|
13
|
+
GraphQLObjectType,
|
|
14
|
+
} from './definition';
|
|
15
|
+
import type { GraphQLDirective } from './directives';
|
|
16
|
+
/**
|
|
17
|
+
* Test if the given value is a GraphQL schema.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isSchema(schema: unknown): schema is GraphQLSchema;
|
|
20
|
+
export declare function assertSchema(schema: unknown): GraphQLSchema;
|
|
21
|
+
/**
|
|
22
|
+
* Custom extensions
|
|
23
|
+
*
|
|
24
|
+
* @remarks
|
|
25
|
+
* Use a unique identifier name for your extension, for example the name of
|
|
26
|
+
* your library or project. Do not use a shortened identifier as this increases
|
|
27
|
+
* the risk of conflicts. We recommend you add at most one extension field,
|
|
28
|
+
* an object which can contain all the values you need.
|
|
29
|
+
*/
|
|
30
|
+
export interface GraphQLSchemaExtensions {
|
|
31
|
+
[attributeName: string]: unknown;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Schema Definition
|
|
35
|
+
*
|
|
36
|
+
* A Schema is created by supplying the root types of each type of operation,
|
|
37
|
+
* query and mutation (optional). A schema definition is then supplied to the
|
|
38
|
+
* validator and executor.
|
|
39
|
+
*
|
|
40
|
+
* Example:
|
|
41
|
+
*
|
|
42
|
+
* ```ts
|
|
43
|
+
* const MyAppSchema = new GraphQLSchema({
|
|
44
|
+
* query: MyAppQueryRootType,
|
|
45
|
+
* mutation: MyAppMutationRootType,
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* Note: When the schema is constructed, by default only the types that are
|
|
50
|
+
* reachable by traversing the root types are included, other types must be
|
|
51
|
+
* explicitly referenced.
|
|
52
|
+
*
|
|
53
|
+
* Example:
|
|
54
|
+
*
|
|
55
|
+
* ```ts
|
|
56
|
+
* const characterInterface = new GraphQLInterfaceType({
|
|
57
|
+
* name: 'Character',
|
|
58
|
+
* ...
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* const humanType = new GraphQLObjectType({
|
|
62
|
+
* name: 'Human',
|
|
63
|
+
* interfaces: [characterInterface],
|
|
64
|
+
* ...
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* const droidType = new GraphQLObjectType({
|
|
68
|
+
* name: 'Droid',
|
|
69
|
+
* interfaces: [characterInterface],
|
|
70
|
+
* ...
|
|
71
|
+
* });
|
|
72
|
+
*
|
|
73
|
+
* const schema = new GraphQLSchema({
|
|
74
|
+
* query: new GraphQLObjectType({
|
|
75
|
+
* name: 'Query',
|
|
76
|
+
* fields: {
|
|
77
|
+
* hero: { type: characterInterface, ... },
|
|
78
|
+
* }
|
|
79
|
+
* }),
|
|
80
|
+
* ...
|
|
81
|
+
* // Since this schema references only the `Character` interface it's
|
|
82
|
+
* // necessary to explicitly list the types that implement it if
|
|
83
|
+
* // you want them to be included in the final schema.
|
|
84
|
+
* types: [humanType, droidType],
|
|
85
|
+
* })
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* Note: If an array of `directives` are provided to GraphQLSchema, that will be
|
|
89
|
+
* the exact list of directives represented and allowed. If `directives` is not
|
|
90
|
+
* provided then a default set of the specified directives (e.g. `@include` and
|
|
91
|
+
* `@skip`) will be used. If you wish to provide *additional* directives to these
|
|
92
|
+
* specified directives, you must explicitly declare them. Example:
|
|
93
|
+
*
|
|
94
|
+
* ```ts
|
|
95
|
+
* const MyAppSchema = new GraphQLSchema({
|
|
96
|
+
* ...
|
|
97
|
+
* directives: specifiedDirectives.concat([ myCustomDirective ]),
|
|
98
|
+
* })
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export declare class GraphQLSchema {
|
|
102
|
+
description: Maybe<string>;
|
|
103
|
+
extensions: Readonly<GraphQLSchemaExtensions>;
|
|
104
|
+
astNode: Maybe<SchemaDefinitionNode>;
|
|
105
|
+
extensionASTNodes: ReadonlyArray<SchemaExtensionNode>;
|
|
106
|
+
__validationErrors: Maybe<ReadonlyArray<GraphQLError>>;
|
|
107
|
+
private _queryType;
|
|
108
|
+
private _mutationType;
|
|
109
|
+
private _subscriptionType;
|
|
110
|
+
private _directives;
|
|
111
|
+
private _typeMap;
|
|
112
|
+
private _subTypeMap;
|
|
113
|
+
private _implementationsMap;
|
|
114
|
+
constructor(config: Readonly<GraphQLSchemaConfig>);
|
|
115
|
+
get [Symbol.toStringTag](): string;
|
|
116
|
+
getQueryType(): Maybe<GraphQLObjectType>;
|
|
117
|
+
getMutationType(): Maybe<GraphQLObjectType>;
|
|
118
|
+
getSubscriptionType(): Maybe<GraphQLObjectType>;
|
|
119
|
+
getRootType(operation: OperationTypeNode): Maybe<GraphQLObjectType>;
|
|
120
|
+
getTypeMap(): TypeMap;
|
|
121
|
+
getType(name: string): GraphQLNamedType | undefined;
|
|
122
|
+
getPossibleTypes(
|
|
123
|
+
abstractType: GraphQLAbstractType,
|
|
124
|
+
): ReadonlyArray<GraphQLObjectType>;
|
|
125
|
+
getImplementations(interfaceType: GraphQLInterfaceType): {
|
|
126
|
+
objects: ReadonlyArray<GraphQLObjectType>;
|
|
127
|
+
interfaces: ReadonlyArray<GraphQLInterfaceType>;
|
|
128
|
+
};
|
|
129
|
+
isSubType(
|
|
130
|
+
abstractType: GraphQLAbstractType,
|
|
131
|
+
maybeSubType: GraphQLObjectType | GraphQLInterfaceType,
|
|
132
|
+
): boolean;
|
|
133
|
+
getDirectives(): ReadonlyArray<GraphQLDirective>;
|
|
134
|
+
getDirective(name: string): Maybe<GraphQLDirective>;
|
|
135
|
+
toConfig(): GraphQLSchemaNormalizedConfig;
|
|
136
|
+
}
|
|
137
|
+
declare type TypeMap = ObjMap<GraphQLNamedType>;
|
|
138
|
+
export interface GraphQLSchemaValidationOptions {
|
|
139
|
+
/**
|
|
140
|
+
* When building a schema from a GraphQL service's introspection result, it
|
|
141
|
+
* might be safe to assume the schema is valid. Set to true to assume the
|
|
142
|
+
* produced schema is valid.
|
|
143
|
+
*
|
|
144
|
+
* Default: false
|
|
145
|
+
*/
|
|
146
|
+
assumeValid?: boolean;
|
|
147
|
+
}
|
|
148
|
+
export interface GraphQLSchemaConfig extends GraphQLSchemaValidationOptions {
|
|
149
|
+
description?: Maybe<string>;
|
|
150
|
+
query?: Maybe<GraphQLObjectType>;
|
|
151
|
+
mutation?: Maybe<GraphQLObjectType>;
|
|
152
|
+
subscription?: Maybe<GraphQLObjectType>;
|
|
153
|
+
types?: Maybe<ReadonlyArray<GraphQLNamedType>>;
|
|
154
|
+
directives?: Maybe<ReadonlyArray<GraphQLDirective>>;
|
|
155
|
+
extensions?: Maybe<Readonly<GraphQLSchemaExtensions>>;
|
|
156
|
+
astNode?: Maybe<SchemaDefinitionNode>;
|
|
157
|
+
extensionASTNodes?: Maybe<ReadonlyArray<SchemaExtensionNode>>;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* @internal
|
|
161
|
+
*/
|
|
162
|
+
export interface GraphQLSchemaNormalizedConfig extends GraphQLSchemaConfig {
|
|
163
|
+
description: Maybe<string>;
|
|
164
|
+
types: ReadonlyArray<GraphQLNamedType>;
|
|
165
|
+
directives: ReadonlyArray<GraphQLDirective>;
|
|
166
|
+
extensions: Readonly<GraphQLSchemaExtensions>;
|
|
167
|
+
extensionASTNodes: ReadonlyArray<SchemaExtensionNode>;
|
|
168
|
+
assumeValid: boolean;
|
|
169
|
+
}
|
|
170
|
+
export {};
|
package/type/schema.js
ADDED
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.GraphQLSchema = void 0;
|
|
7
|
+
exports.assertSchema = assertSchema;
|
|
8
|
+
exports.isSchema = isSchema;
|
|
9
|
+
|
|
10
|
+
var _devAssert = require('../jsutils/devAssert.js');
|
|
11
|
+
|
|
12
|
+
var _inspect = require('../jsutils/inspect.js');
|
|
13
|
+
|
|
14
|
+
var _instanceOf = require('../jsutils/instanceOf.js');
|
|
15
|
+
|
|
16
|
+
var _isObjectLike = require('../jsutils/isObjectLike.js');
|
|
17
|
+
|
|
18
|
+
var _toObjMap = require('../jsutils/toObjMap.js');
|
|
19
|
+
|
|
20
|
+
var _ast = require('../language/ast.js');
|
|
21
|
+
|
|
22
|
+
var _definition = require('./definition.js');
|
|
23
|
+
|
|
24
|
+
var _directives = require('./directives.js');
|
|
25
|
+
|
|
26
|
+
var _introspection = require('./introspection.js');
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Test if the given value is a GraphQL schema.
|
|
30
|
+
*/
|
|
31
|
+
function isSchema(schema) {
|
|
32
|
+
return (0, _instanceOf.instanceOf)(schema, GraphQLSchema);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function assertSchema(schema) {
|
|
36
|
+
if (!isSchema(schema)) {
|
|
37
|
+
throw new Error(
|
|
38
|
+
`Expected ${(0, _inspect.inspect)(schema)} to be a GraphQL schema.`,
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return schema;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Custom extensions
|
|
46
|
+
*
|
|
47
|
+
* @remarks
|
|
48
|
+
* Use a unique identifier name for your extension, for example the name of
|
|
49
|
+
* your library or project. Do not use a shortened identifier as this increases
|
|
50
|
+
* the risk of conflicts. We recommend you add at most one extension field,
|
|
51
|
+
* an object which can contain all the values you need.
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Schema Definition
|
|
56
|
+
*
|
|
57
|
+
* A Schema is created by supplying the root types of each type of operation,
|
|
58
|
+
* query and mutation (optional). A schema definition is then supplied to the
|
|
59
|
+
* validator and executor.
|
|
60
|
+
*
|
|
61
|
+
* Example:
|
|
62
|
+
*
|
|
63
|
+
* ```ts
|
|
64
|
+
* const MyAppSchema = new GraphQLSchema({
|
|
65
|
+
* query: MyAppQueryRootType,
|
|
66
|
+
* mutation: MyAppMutationRootType,
|
|
67
|
+
* })
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* Note: When the schema is constructed, by default only the types that are
|
|
71
|
+
* reachable by traversing the root types are included, other types must be
|
|
72
|
+
* explicitly referenced.
|
|
73
|
+
*
|
|
74
|
+
* Example:
|
|
75
|
+
*
|
|
76
|
+
* ```ts
|
|
77
|
+
* const characterInterface = new GraphQLInterfaceType({
|
|
78
|
+
* name: 'Character',
|
|
79
|
+
* ...
|
|
80
|
+
* });
|
|
81
|
+
*
|
|
82
|
+
* const humanType = new GraphQLObjectType({
|
|
83
|
+
* name: 'Human',
|
|
84
|
+
* interfaces: [characterInterface],
|
|
85
|
+
* ...
|
|
86
|
+
* });
|
|
87
|
+
*
|
|
88
|
+
* const droidType = new GraphQLObjectType({
|
|
89
|
+
* name: 'Droid',
|
|
90
|
+
* interfaces: [characterInterface],
|
|
91
|
+
* ...
|
|
92
|
+
* });
|
|
93
|
+
*
|
|
94
|
+
* const schema = new GraphQLSchema({
|
|
95
|
+
* query: new GraphQLObjectType({
|
|
96
|
+
* name: 'Query',
|
|
97
|
+
* fields: {
|
|
98
|
+
* hero: { type: characterInterface, ... },
|
|
99
|
+
* }
|
|
100
|
+
* }),
|
|
101
|
+
* ...
|
|
102
|
+
* // Since this schema references only the `Character` interface it's
|
|
103
|
+
* // necessary to explicitly list the types that implement it if
|
|
104
|
+
* // you want them to be included in the final schema.
|
|
105
|
+
* types: [humanType, droidType],
|
|
106
|
+
* })
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* Note: If an array of `directives` are provided to GraphQLSchema, that will be
|
|
110
|
+
* the exact list of directives represented and allowed. If `directives` is not
|
|
111
|
+
* provided then a default set of the specified directives (e.g. `@include` and
|
|
112
|
+
* `@skip`) will be used. If you wish to provide *additional* directives to these
|
|
113
|
+
* specified directives, you must explicitly declare them. Example:
|
|
114
|
+
*
|
|
115
|
+
* ```ts
|
|
116
|
+
* const MyAppSchema = new GraphQLSchema({
|
|
117
|
+
* ...
|
|
118
|
+
* directives: specifiedDirectives.concat([ myCustomDirective ]),
|
|
119
|
+
* })
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
class GraphQLSchema {
|
|
123
|
+
// Used as a cache for validateSchema().
|
|
124
|
+
constructor(config) {
|
|
125
|
+
var _config$extensionASTN, _config$directives;
|
|
126
|
+
|
|
127
|
+
// If this schema was built from a source known to be valid, then it may be
|
|
128
|
+
// marked with assumeValid to avoid an additional type system validation.
|
|
129
|
+
this.__validationErrors = config.assumeValid === true ? [] : undefined; // Check for common mistakes during construction to produce early errors.
|
|
130
|
+
|
|
131
|
+
(0, _isObjectLike.isObjectLike)(config) ||
|
|
132
|
+
(0, _devAssert.devAssert)(false, 'Must provide configuration object.');
|
|
133
|
+
!config.types ||
|
|
134
|
+
Array.isArray(config.types) ||
|
|
135
|
+
(0, _devAssert.devAssert)(
|
|
136
|
+
false,
|
|
137
|
+
`"types" must be Array if provided but got: ${(0, _inspect.inspect)(
|
|
138
|
+
config.types,
|
|
139
|
+
)}.`,
|
|
140
|
+
);
|
|
141
|
+
!config.directives ||
|
|
142
|
+
Array.isArray(config.directives) ||
|
|
143
|
+
(0, _devAssert.devAssert)(
|
|
144
|
+
false,
|
|
145
|
+
'"directives" must be Array if provided but got: ' +
|
|
146
|
+
`${(0, _inspect.inspect)(config.directives)}.`,
|
|
147
|
+
);
|
|
148
|
+
this.description = config.description;
|
|
149
|
+
this.extensions = (0, _toObjMap.toObjMap)(config.extensions);
|
|
150
|
+
this.astNode = config.astNode;
|
|
151
|
+
this.extensionASTNodes =
|
|
152
|
+
(_config$extensionASTN = config.extensionASTNodes) !== null &&
|
|
153
|
+
_config$extensionASTN !== void 0
|
|
154
|
+
? _config$extensionASTN
|
|
155
|
+
: [];
|
|
156
|
+
this._queryType = config.query;
|
|
157
|
+
this._mutationType = config.mutation;
|
|
158
|
+
this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default.
|
|
159
|
+
|
|
160
|
+
this._directives =
|
|
161
|
+
(_config$directives = config.directives) !== null &&
|
|
162
|
+
_config$directives !== void 0
|
|
163
|
+
? _config$directives
|
|
164
|
+
: _directives.specifiedDirectives; // To preserve order of user-provided types, we add first to add them to
|
|
165
|
+
// the set of "collected" types, so `collectReferencedTypes` ignore them.
|
|
166
|
+
|
|
167
|
+
const allReferencedTypes = new Set(config.types);
|
|
168
|
+
|
|
169
|
+
if (config.types != null) {
|
|
170
|
+
for (const type of config.types) {
|
|
171
|
+
// When we ready to process this type, we remove it from "collected" types
|
|
172
|
+
// and then add it together with all dependent types in the correct position.
|
|
173
|
+
allReferencedTypes.delete(type);
|
|
174
|
+
collectReferencedTypes(type, allReferencedTypes);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (this._queryType != null) {
|
|
179
|
+
collectReferencedTypes(this._queryType, allReferencedTypes);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (this._mutationType != null) {
|
|
183
|
+
collectReferencedTypes(this._mutationType, allReferencedTypes);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (this._subscriptionType != null) {
|
|
187
|
+
collectReferencedTypes(this._subscriptionType, allReferencedTypes);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
for (const directive of this._directives) {
|
|
191
|
+
// Directives are not validated until validateSchema() is called.
|
|
192
|
+
if ((0, _directives.isDirective)(directive)) {
|
|
193
|
+
for (const arg of directive.args) {
|
|
194
|
+
collectReferencedTypes(arg.type, allReferencedTypes);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
collectReferencedTypes(_introspection.__Schema, allReferencedTypes); // Storing the resulting map for reference by the schema.
|
|
200
|
+
|
|
201
|
+
this._typeMap = Object.create(null);
|
|
202
|
+
this._subTypeMap = Object.create(null); // Keep track of all implementations by interface name.
|
|
203
|
+
|
|
204
|
+
this._implementationsMap = Object.create(null);
|
|
205
|
+
|
|
206
|
+
for (const namedType of allReferencedTypes) {
|
|
207
|
+
if (namedType == null) {
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const typeName = namedType.name;
|
|
212
|
+
typeName ||
|
|
213
|
+
(0, _devAssert.devAssert)(
|
|
214
|
+
false,
|
|
215
|
+
'One of the provided types for building the Schema is missing a name.',
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
if (this._typeMap[typeName] !== undefined) {
|
|
219
|
+
throw new Error(
|
|
220
|
+
`Schema must contain uniquely named types but contains multiple types named "${typeName}".`,
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
this._typeMap[typeName] = namedType;
|
|
225
|
+
|
|
226
|
+
if ((0, _definition.isInterfaceType)(namedType)) {
|
|
227
|
+
// Store implementations by interface.
|
|
228
|
+
for (const iface of namedType.getInterfaces()) {
|
|
229
|
+
if ((0, _definition.isInterfaceType)(iface)) {
|
|
230
|
+
let implementations = this._implementationsMap[iface.name];
|
|
231
|
+
|
|
232
|
+
if (implementations === undefined) {
|
|
233
|
+
implementations = this._implementationsMap[iface.name] = {
|
|
234
|
+
objects: [],
|
|
235
|
+
interfaces: [],
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
implementations.interfaces.push(namedType);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
} else if ((0, _definition.isObjectType)(namedType)) {
|
|
243
|
+
// Store implementations by objects.
|
|
244
|
+
for (const iface of namedType.getInterfaces()) {
|
|
245
|
+
if ((0, _definition.isInterfaceType)(iface)) {
|
|
246
|
+
let implementations = this._implementationsMap[iface.name];
|
|
247
|
+
|
|
248
|
+
if (implementations === undefined) {
|
|
249
|
+
implementations = this._implementationsMap[iface.name] = {
|
|
250
|
+
objects: [],
|
|
251
|
+
interfaces: [],
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
implementations.objects.push(namedType);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
get [Symbol.toStringTag]() {
|
|
263
|
+
return 'GraphQLSchema';
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
getQueryType() {
|
|
267
|
+
return this._queryType;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
getMutationType() {
|
|
271
|
+
return this._mutationType;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
getSubscriptionType() {
|
|
275
|
+
return this._subscriptionType;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
getRootType(operation) {
|
|
279
|
+
switch (operation) {
|
|
280
|
+
case _ast.OperationTypeNode.QUERY:
|
|
281
|
+
return this.getQueryType();
|
|
282
|
+
|
|
283
|
+
case _ast.OperationTypeNode.MUTATION:
|
|
284
|
+
return this.getMutationType();
|
|
285
|
+
|
|
286
|
+
case _ast.OperationTypeNode.SUBSCRIPTION:
|
|
287
|
+
return this.getSubscriptionType();
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
getTypeMap() {
|
|
292
|
+
return this._typeMap;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
getType(name) {
|
|
296
|
+
return this.getTypeMap()[name];
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
getPossibleTypes(abstractType) {
|
|
300
|
+
return (0, _definition.isUnionType)(abstractType)
|
|
301
|
+
? abstractType.getTypes()
|
|
302
|
+
: this.getImplementations(abstractType).objects;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
getImplementations(interfaceType) {
|
|
306
|
+
const implementations = this._implementationsMap[interfaceType.name];
|
|
307
|
+
return implementations !== null && implementations !== void 0
|
|
308
|
+
? implementations
|
|
309
|
+
: {
|
|
310
|
+
objects: [],
|
|
311
|
+
interfaces: [],
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
isSubType(abstractType, maybeSubType) {
|
|
316
|
+
let map = this._subTypeMap[abstractType.name];
|
|
317
|
+
|
|
318
|
+
if (map === undefined) {
|
|
319
|
+
map = Object.create(null);
|
|
320
|
+
|
|
321
|
+
if ((0, _definition.isUnionType)(abstractType)) {
|
|
322
|
+
for (const type of abstractType.getTypes()) {
|
|
323
|
+
map[type.name] = true;
|
|
324
|
+
}
|
|
325
|
+
} else {
|
|
326
|
+
const implementations = this.getImplementations(abstractType);
|
|
327
|
+
|
|
328
|
+
for (const type of implementations.objects) {
|
|
329
|
+
map[type.name] = true;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
for (const type of implementations.interfaces) {
|
|
333
|
+
map[type.name] = true;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
this._subTypeMap[abstractType.name] = map;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
return map[maybeSubType.name] !== undefined;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
getDirectives() {
|
|
344
|
+
return this._directives;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
getDirective(name) {
|
|
348
|
+
return this.getDirectives().find((directive) => directive.name === name);
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
toConfig() {
|
|
352
|
+
return {
|
|
353
|
+
description: this.description,
|
|
354
|
+
query: this.getQueryType(),
|
|
355
|
+
mutation: this.getMutationType(),
|
|
356
|
+
subscription: this.getSubscriptionType(),
|
|
357
|
+
types: Object.values(this.getTypeMap()),
|
|
358
|
+
directives: this.getDirectives(),
|
|
359
|
+
extensions: this.extensions,
|
|
360
|
+
astNode: this.astNode,
|
|
361
|
+
extensionASTNodes: this.extensionASTNodes,
|
|
362
|
+
assumeValid: this.__validationErrors !== undefined,
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
exports.GraphQLSchema = GraphQLSchema;
|
|
368
|
+
|
|
369
|
+
function collectReferencedTypes(type, typeSet) {
|
|
370
|
+
const namedType = (0, _definition.getNamedType)(type);
|
|
371
|
+
|
|
372
|
+
if (!typeSet.has(namedType)) {
|
|
373
|
+
typeSet.add(namedType);
|
|
374
|
+
|
|
375
|
+
if ((0, _definition.isUnionType)(namedType)) {
|
|
376
|
+
for (const memberType of namedType.getTypes()) {
|
|
377
|
+
collectReferencedTypes(memberType, typeSet);
|
|
378
|
+
}
|
|
379
|
+
} else if (
|
|
380
|
+
(0, _definition.isObjectType)(namedType) ||
|
|
381
|
+
(0, _definition.isInterfaceType)(namedType)
|
|
382
|
+
) {
|
|
383
|
+
for (const interfaceType of namedType.getInterfaces()) {
|
|
384
|
+
collectReferencedTypes(interfaceType, typeSet);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
for (const field of Object.values(namedType.getFields())) {
|
|
388
|
+
collectReferencedTypes(field.type, typeSet);
|
|
389
|
+
|
|
390
|
+
for (const arg of field.args) {
|
|
391
|
+
collectReferencedTypes(arg.type, typeSet);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
} else if ((0, _definition.isInputObjectType)(namedType)) {
|
|
395
|
+
for (const field of Object.values(namedType.getFields())) {
|
|
396
|
+
collectReferencedTypes(field.type, typeSet);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
return typeSet;
|
|
402
|
+
}
|