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
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.stripIgnoredCharacters = stripIgnoredCharacters;
|
|
7
|
+
|
|
8
|
+
var _blockString = require('../language/blockString.js');
|
|
9
|
+
|
|
10
|
+
var _lexer = require('../language/lexer.js');
|
|
11
|
+
|
|
12
|
+
var _source = require('../language/source.js');
|
|
13
|
+
|
|
14
|
+
var _tokenKind = require('../language/tokenKind.js');
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Strips characters that are not significant to the validity or execution
|
|
18
|
+
* of a GraphQL document:
|
|
19
|
+
* - UnicodeBOM
|
|
20
|
+
* - WhiteSpace
|
|
21
|
+
* - LineTerminator
|
|
22
|
+
* - Comment
|
|
23
|
+
* - Comma
|
|
24
|
+
* - BlockString indentation
|
|
25
|
+
*
|
|
26
|
+
* Note: It is required to have a delimiter character between neighboring
|
|
27
|
+
* non-punctuator tokens and this function always uses single space as delimiter.
|
|
28
|
+
*
|
|
29
|
+
* It is guaranteed that both input and output documents if parsed would result
|
|
30
|
+
* in the exact same AST except for nodes location.
|
|
31
|
+
*
|
|
32
|
+
* Warning: It is guaranteed that this function will always produce stable results.
|
|
33
|
+
* However, it's not guaranteed that it will stay the same between different
|
|
34
|
+
* releases due to bugfixes or changes in the GraphQL specification.
|
|
35
|
+
*
|
|
36
|
+
* Query example:
|
|
37
|
+
*
|
|
38
|
+
* ```graphql
|
|
39
|
+
* query SomeQuery($foo: String!, $bar: String) {
|
|
40
|
+
* someField(foo: $foo, bar: $bar) {
|
|
41
|
+
* a
|
|
42
|
+
* b {
|
|
43
|
+
* c
|
|
44
|
+
* d
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* Becomes:
|
|
51
|
+
*
|
|
52
|
+
* ```graphql
|
|
53
|
+
* query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* SDL example:
|
|
57
|
+
*
|
|
58
|
+
* ```graphql
|
|
59
|
+
* """
|
|
60
|
+
* Type description
|
|
61
|
+
* """
|
|
62
|
+
* type Foo {
|
|
63
|
+
* """
|
|
64
|
+
* Field description
|
|
65
|
+
* """
|
|
66
|
+
* bar: String
|
|
67
|
+
* }
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* Becomes:
|
|
71
|
+
*
|
|
72
|
+
* ```graphql
|
|
73
|
+
* """Type description""" type Foo{"""Field description""" bar:String}
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
function stripIgnoredCharacters(source) {
|
|
77
|
+
const sourceObj = (0, _source.isSource)(source)
|
|
78
|
+
? source
|
|
79
|
+
: new _source.Source(source);
|
|
80
|
+
const body = sourceObj.body;
|
|
81
|
+
const lexer = new _lexer.Lexer(sourceObj);
|
|
82
|
+
let strippedBody = '';
|
|
83
|
+
let wasLastAddedTokenNonPunctuator = false;
|
|
84
|
+
|
|
85
|
+
while (lexer.advance().kind !== _tokenKind.TokenKind.EOF) {
|
|
86
|
+
const currentToken = lexer.token;
|
|
87
|
+
const tokenKind = currentToken.kind;
|
|
88
|
+
/**
|
|
89
|
+
* Every two non-punctuator tokens should have space between them.
|
|
90
|
+
* Also prevent case of non-punctuator token following by spread resulting
|
|
91
|
+
* in invalid token (e.g. `1...` is invalid Float token).
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
const isNonPunctuator = !(0, _lexer.isPunctuatorTokenKind)(
|
|
95
|
+
currentToken.kind,
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
if (wasLastAddedTokenNonPunctuator) {
|
|
99
|
+
if (
|
|
100
|
+
isNonPunctuator ||
|
|
101
|
+
currentToken.kind === _tokenKind.TokenKind.SPREAD
|
|
102
|
+
) {
|
|
103
|
+
strippedBody += ' ';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const tokenBody = body.slice(currentToken.start, currentToken.end);
|
|
108
|
+
|
|
109
|
+
if (tokenKind === _tokenKind.TokenKind.BLOCK_STRING) {
|
|
110
|
+
strippedBody += (0, _blockString.printBlockString)(currentToken.value, {
|
|
111
|
+
minimize: true,
|
|
112
|
+
});
|
|
113
|
+
} else {
|
|
114
|
+
strippedBody += tokenBody;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
wasLastAddedTokenNonPunctuator = isNonPunctuator;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return strippedBody;
|
|
121
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { printBlockString } from '../language/blockString.mjs';
|
|
2
|
+
import { isPunctuatorTokenKind, Lexer } from '../language/lexer.mjs';
|
|
3
|
+
import { isSource, Source } from '../language/source.mjs';
|
|
4
|
+
import { TokenKind } from '../language/tokenKind.mjs';
|
|
5
|
+
/**
|
|
6
|
+
* Strips characters that are not significant to the validity or execution
|
|
7
|
+
* of a GraphQL document:
|
|
8
|
+
* - UnicodeBOM
|
|
9
|
+
* - WhiteSpace
|
|
10
|
+
* - LineTerminator
|
|
11
|
+
* - Comment
|
|
12
|
+
* - Comma
|
|
13
|
+
* - BlockString indentation
|
|
14
|
+
*
|
|
15
|
+
* Note: It is required to have a delimiter character between neighboring
|
|
16
|
+
* non-punctuator tokens and this function always uses single space as delimiter.
|
|
17
|
+
*
|
|
18
|
+
* It is guaranteed that both input and output documents if parsed would result
|
|
19
|
+
* in the exact same AST except for nodes location.
|
|
20
|
+
*
|
|
21
|
+
* Warning: It is guaranteed that this function will always produce stable results.
|
|
22
|
+
* However, it's not guaranteed that it will stay the same between different
|
|
23
|
+
* releases due to bugfixes or changes in the GraphQL specification.
|
|
24
|
+
*
|
|
25
|
+
* Query example:
|
|
26
|
+
*
|
|
27
|
+
* ```graphql
|
|
28
|
+
* query SomeQuery($foo: String!, $bar: String) {
|
|
29
|
+
* someField(foo: $foo, bar: $bar) {
|
|
30
|
+
* a
|
|
31
|
+
* b {
|
|
32
|
+
* c
|
|
33
|
+
* d
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* Becomes:
|
|
40
|
+
*
|
|
41
|
+
* ```graphql
|
|
42
|
+
* query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* SDL example:
|
|
46
|
+
*
|
|
47
|
+
* ```graphql
|
|
48
|
+
* """
|
|
49
|
+
* Type description
|
|
50
|
+
* """
|
|
51
|
+
* type Foo {
|
|
52
|
+
* """
|
|
53
|
+
* Field description
|
|
54
|
+
* """
|
|
55
|
+
* bar: String
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* Becomes:
|
|
60
|
+
*
|
|
61
|
+
* ```graphql
|
|
62
|
+
* """Type description""" type Foo{"""Field description""" bar:String}
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
export function stripIgnoredCharacters(source) {
|
|
67
|
+
const sourceObj = isSource(source) ? source : new Source(source);
|
|
68
|
+
const body = sourceObj.body;
|
|
69
|
+
const lexer = new Lexer(sourceObj);
|
|
70
|
+
let strippedBody = '';
|
|
71
|
+
let wasLastAddedTokenNonPunctuator = false;
|
|
72
|
+
|
|
73
|
+
while (lexer.advance().kind !== TokenKind.EOF) {
|
|
74
|
+
const currentToken = lexer.token;
|
|
75
|
+
const tokenKind = currentToken.kind;
|
|
76
|
+
/**
|
|
77
|
+
* Every two non-punctuator tokens should have space between them.
|
|
78
|
+
* Also prevent case of non-punctuator token following by spread resulting
|
|
79
|
+
* in invalid token (e.g. `1...` is invalid Float token).
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
const isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);
|
|
83
|
+
|
|
84
|
+
if (wasLastAddedTokenNonPunctuator) {
|
|
85
|
+
if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {
|
|
86
|
+
strippedBody += ' ';
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const tokenBody = body.slice(currentToken.start, currentToken.end);
|
|
91
|
+
|
|
92
|
+
if (tokenKind === TokenKind.BLOCK_STRING) {
|
|
93
|
+
strippedBody += printBlockString(currentToken.value, {
|
|
94
|
+
minimize: true,
|
|
95
|
+
});
|
|
96
|
+
} else {
|
|
97
|
+
strippedBody += tokenBody;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
wasLastAddedTokenNonPunctuator = isNonPunctuator;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return strippedBody;
|
|
104
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { GraphQLCompositeType, GraphQLType } from '../type/definition';
|
|
2
|
+
import type { GraphQLSchema } from '../type/schema';
|
|
3
|
+
/**
|
|
4
|
+
* Provided two types, return true if the types are equal (invariant).
|
|
5
|
+
*/
|
|
6
|
+
export declare function isEqualType(
|
|
7
|
+
typeA: GraphQLType,
|
|
8
|
+
typeB: GraphQLType,
|
|
9
|
+
): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Provided a type and a super type, return true if the first type is either
|
|
12
|
+
* equal or a subset of the second super type (covariant).
|
|
13
|
+
*/
|
|
14
|
+
export declare function isTypeSubTypeOf(
|
|
15
|
+
schema: GraphQLSchema,
|
|
16
|
+
maybeSubType: GraphQLType,
|
|
17
|
+
superType: GraphQLType,
|
|
18
|
+
): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Provided two composite types, determine if they "overlap". Two composite
|
|
21
|
+
* types overlap when the Sets of possible concrete types for each intersect.
|
|
22
|
+
*
|
|
23
|
+
* This is often used to determine if a fragment of a given type could possibly
|
|
24
|
+
* be visited in a context of another type.
|
|
25
|
+
*
|
|
26
|
+
* This function is commutative.
|
|
27
|
+
*/
|
|
28
|
+
export declare function doTypesOverlap(
|
|
29
|
+
schema: GraphQLSchema,
|
|
30
|
+
typeA: GraphQLCompositeType,
|
|
31
|
+
typeB: GraphQLCompositeType,
|
|
32
|
+
): boolean;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.doTypesOverlap = doTypesOverlap;
|
|
7
|
+
exports.isEqualType = isEqualType;
|
|
8
|
+
exports.isTypeSubTypeOf = isTypeSubTypeOf;
|
|
9
|
+
|
|
10
|
+
var _definition = require('../type/definition.js');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Provided two types, return true if the types are equal (invariant).
|
|
14
|
+
*/
|
|
15
|
+
function isEqualType(typeA, typeB) {
|
|
16
|
+
// Equivalent types are equal.
|
|
17
|
+
if (typeA === typeB) {
|
|
18
|
+
return true;
|
|
19
|
+
} // If either type is non-null, the other must also be non-null.
|
|
20
|
+
|
|
21
|
+
if (
|
|
22
|
+
(0, _definition.isNonNullType)(typeA) &&
|
|
23
|
+
(0, _definition.isNonNullType)(typeB)
|
|
24
|
+
) {
|
|
25
|
+
return isEqualType(typeA.ofType, typeB.ofType);
|
|
26
|
+
} // If either type is a list, the other must also be a list.
|
|
27
|
+
|
|
28
|
+
if (
|
|
29
|
+
(0, _definition.isListType)(typeA) &&
|
|
30
|
+
(0, _definition.isListType)(typeB)
|
|
31
|
+
) {
|
|
32
|
+
return isEqualType(typeA.ofType, typeB.ofType);
|
|
33
|
+
} // Otherwise the types are not equal.
|
|
34
|
+
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Provided a type and a super type, return true if the first type is either
|
|
39
|
+
* equal or a subset of the second super type (covariant).
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
function isTypeSubTypeOf(schema, maybeSubType, superType) {
|
|
43
|
+
// Equivalent type is a valid subtype
|
|
44
|
+
if (maybeSubType === superType) {
|
|
45
|
+
return true;
|
|
46
|
+
} // If superType is non-null, maybeSubType must also be non-null.
|
|
47
|
+
|
|
48
|
+
if ((0, _definition.isNonNullType)(superType)) {
|
|
49
|
+
if ((0, _definition.isNonNullType)(maybeSubType)) {
|
|
50
|
+
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if ((0, _definition.isNonNullType)(maybeSubType)) {
|
|
57
|
+
// If superType is nullable, maybeSubType may be non-null or nullable.
|
|
58
|
+
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);
|
|
59
|
+
} // If superType type is a list, maybeSubType type must also be a list.
|
|
60
|
+
|
|
61
|
+
if ((0, _definition.isListType)(superType)) {
|
|
62
|
+
if ((0, _definition.isListType)(maybeSubType)) {
|
|
63
|
+
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if ((0, _definition.isListType)(maybeSubType)) {
|
|
70
|
+
// If superType is not a list, maybeSubType must also be not a list.
|
|
71
|
+
return false;
|
|
72
|
+
} // If superType type is an abstract type, check if it is super type of maybeSubType.
|
|
73
|
+
// Otherwise, the child type is not a valid subtype of the parent type.
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
(0, _definition.isAbstractType)(superType) &&
|
|
77
|
+
((0, _definition.isInterfaceType)(maybeSubType) ||
|
|
78
|
+
(0, _definition.isObjectType)(maybeSubType)) &&
|
|
79
|
+
schema.isSubType(superType, maybeSubType)
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Provided two composite types, determine if they "overlap". Two composite
|
|
84
|
+
* types overlap when the Sets of possible concrete types for each intersect.
|
|
85
|
+
*
|
|
86
|
+
* This is often used to determine if a fragment of a given type could possibly
|
|
87
|
+
* be visited in a context of another type.
|
|
88
|
+
*
|
|
89
|
+
* This function is commutative.
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
function doTypesOverlap(schema, typeA, typeB) {
|
|
93
|
+
// Equivalent types overlap
|
|
94
|
+
if (typeA === typeB) {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if ((0, _definition.isAbstractType)(typeA)) {
|
|
99
|
+
if ((0, _definition.isAbstractType)(typeB)) {
|
|
100
|
+
// If both types are abstract, then determine if there is any intersection
|
|
101
|
+
// between possible concrete types of each.
|
|
102
|
+
return schema
|
|
103
|
+
.getPossibleTypes(typeA)
|
|
104
|
+
.some((type) => schema.isSubType(typeB, type));
|
|
105
|
+
} // Determine if the latter type is a possible concrete type of the former.
|
|
106
|
+
|
|
107
|
+
return schema.isSubType(typeA, typeB);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if ((0, _definition.isAbstractType)(typeB)) {
|
|
111
|
+
// Determine if the former type is a possible concrete type of the latter.
|
|
112
|
+
return schema.isSubType(typeB, typeA);
|
|
113
|
+
} // Otherwise the types do not overlap.
|
|
114
|
+
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isAbstractType,
|
|
3
|
+
isInterfaceType,
|
|
4
|
+
isListType,
|
|
5
|
+
isNonNullType,
|
|
6
|
+
isObjectType,
|
|
7
|
+
} from '../type/definition.mjs';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Provided two types, return true if the types are equal (invariant).
|
|
11
|
+
*/
|
|
12
|
+
export function isEqualType(typeA, typeB) {
|
|
13
|
+
// Equivalent types are equal.
|
|
14
|
+
if (typeA === typeB) {
|
|
15
|
+
return true;
|
|
16
|
+
} // If either type is non-null, the other must also be non-null.
|
|
17
|
+
|
|
18
|
+
if (isNonNullType(typeA) && isNonNullType(typeB)) {
|
|
19
|
+
return isEqualType(typeA.ofType, typeB.ofType);
|
|
20
|
+
} // If either type is a list, the other must also be a list.
|
|
21
|
+
|
|
22
|
+
if (isListType(typeA) && isListType(typeB)) {
|
|
23
|
+
return isEqualType(typeA.ofType, typeB.ofType);
|
|
24
|
+
} // Otherwise the types are not equal.
|
|
25
|
+
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Provided a type and a super type, return true if the first type is either
|
|
30
|
+
* equal or a subset of the second super type (covariant).
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
export function isTypeSubTypeOf(schema, maybeSubType, superType) {
|
|
34
|
+
// Equivalent type is a valid subtype
|
|
35
|
+
if (maybeSubType === superType) {
|
|
36
|
+
return true;
|
|
37
|
+
} // If superType is non-null, maybeSubType must also be non-null.
|
|
38
|
+
|
|
39
|
+
if (isNonNullType(superType)) {
|
|
40
|
+
if (isNonNullType(maybeSubType)) {
|
|
41
|
+
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (isNonNullType(maybeSubType)) {
|
|
48
|
+
// If superType is nullable, maybeSubType may be non-null or nullable.
|
|
49
|
+
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType);
|
|
50
|
+
} // If superType type is a list, maybeSubType type must also be a list.
|
|
51
|
+
|
|
52
|
+
if (isListType(superType)) {
|
|
53
|
+
if (isListType(maybeSubType)) {
|
|
54
|
+
return isTypeSubTypeOf(schema, maybeSubType.ofType, superType.ofType);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (isListType(maybeSubType)) {
|
|
61
|
+
// If superType is not a list, maybeSubType must also be not a list.
|
|
62
|
+
return false;
|
|
63
|
+
} // If superType type is an abstract type, check if it is super type of maybeSubType.
|
|
64
|
+
// Otherwise, the child type is not a valid subtype of the parent type.
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
isAbstractType(superType) &&
|
|
68
|
+
(isInterfaceType(maybeSubType) || isObjectType(maybeSubType)) &&
|
|
69
|
+
schema.isSubType(superType, maybeSubType)
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Provided two composite types, determine if they "overlap". Two composite
|
|
74
|
+
* types overlap when the Sets of possible concrete types for each intersect.
|
|
75
|
+
*
|
|
76
|
+
* This is often used to determine if a fragment of a given type could possibly
|
|
77
|
+
* be visited in a context of another type.
|
|
78
|
+
*
|
|
79
|
+
* This function is commutative.
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
export function doTypesOverlap(schema, typeA, typeB) {
|
|
83
|
+
// Equivalent types overlap
|
|
84
|
+
if (typeA === typeB) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (isAbstractType(typeA)) {
|
|
89
|
+
if (isAbstractType(typeB)) {
|
|
90
|
+
// If both types are abstract, then determine if there is any intersection
|
|
91
|
+
// between possible concrete types of each.
|
|
92
|
+
return schema
|
|
93
|
+
.getPossibleTypes(typeA)
|
|
94
|
+
.some((type) => schema.isSubType(typeB, type));
|
|
95
|
+
} // Determine if the latter type is a possible concrete type of the former.
|
|
96
|
+
|
|
97
|
+
return schema.isSubType(typeA, typeB);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (isAbstractType(typeB)) {
|
|
101
|
+
// Determine if the former type is a possible concrete type of the latter.
|
|
102
|
+
return schema.isSubType(typeB, typeA);
|
|
103
|
+
} // Otherwise the types do not overlap.
|
|
104
|
+
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ListTypeNode,
|
|
3
|
+
NamedTypeNode,
|
|
4
|
+
NonNullTypeNode,
|
|
5
|
+
TypeNode,
|
|
6
|
+
} from '../language/ast';
|
|
7
|
+
import type { GraphQLNamedType, GraphQLType } from '../type/definition';
|
|
8
|
+
import { GraphQLList, GraphQLNonNull } from '../type/definition';
|
|
9
|
+
import type { GraphQLSchema } from '../type/schema';
|
|
10
|
+
/**
|
|
11
|
+
* Given a Schema and an AST node describing a type, return a GraphQLType
|
|
12
|
+
* definition which applies to that type. For example, if provided the parsed
|
|
13
|
+
* AST node for `[User]`, a GraphQLList instance will be returned, containing
|
|
14
|
+
* the type called "User" found in the schema. If a type called "User" is not
|
|
15
|
+
* found in the schema, then undefined will be returned.
|
|
16
|
+
*/
|
|
17
|
+
export declare function typeFromAST(
|
|
18
|
+
schema: GraphQLSchema,
|
|
19
|
+
typeNode: NamedTypeNode,
|
|
20
|
+
): GraphQLNamedType | undefined;
|
|
21
|
+
export declare function typeFromAST(
|
|
22
|
+
schema: GraphQLSchema,
|
|
23
|
+
typeNode: ListTypeNode,
|
|
24
|
+
): GraphQLList<any> | undefined;
|
|
25
|
+
export declare function typeFromAST(
|
|
26
|
+
schema: GraphQLSchema,
|
|
27
|
+
typeNode: NonNullTypeNode,
|
|
28
|
+
): GraphQLNonNull<any> | undefined;
|
|
29
|
+
export declare function typeFromAST(
|
|
30
|
+
schema: GraphQLSchema,
|
|
31
|
+
typeNode: TypeNode,
|
|
32
|
+
): GraphQLType | undefined;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.typeFromAST = typeFromAST;
|
|
7
|
+
|
|
8
|
+
var _kinds = require('../language/kinds.js');
|
|
9
|
+
|
|
10
|
+
var _definition = require('../type/definition.js');
|
|
11
|
+
|
|
12
|
+
function typeFromAST(schema, typeNode) {
|
|
13
|
+
switch (typeNode.kind) {
|
|
14
|
+
case _kinds.Kind.LIST_TYPE: {
|
|
15
|
+
const innerType = typeFromAST(schema, typeNode.type);
|
|
16
|
+
return innerType && new _definition.GraphQLList(innerType);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
case _kinds.Kind.NON_NULL_TYPE: {
|
|
20
|
+
const innerType = typeFromAST(schema, typeNode.type);
|
|
21
|
+
return innerType && new _definition.GraphQLNonNull(innerType);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
case _kinds.Kind.NAMED_TYPE:
|
|
25
|
+
return schema.getType(typeNode.name.value);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Kind } from '../language/kinds.mjs';
|
|
2
|
+
import { GraphQLList, GraphQLNonNull } from '../type/definition.mjs';
|
|
3
|
+
export function typeFromAST(schema, typeNode) {
|
|
4
|
+
switch (typeNode.kind) {
|
|
5
|
+
case Kind.LIST_TYPE: {
|
|
6
|
+
const innerType = typeFromAST(schema, typeNode.type);
|
|
7
|
+
return innerType && new GraphQLList(innerType);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
case Kind.NON_NULL_TYPE: {
|
|
11
|
+
const innerType = typeFromAST(schema, typeNode.type);
|
|
12
|
+
return innerType && new GraphQLNonNull(innerType);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
case Kind.NAMED_TYPE:
|
|
16
|
+
return schema.getType(typeNode.name.value);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { DocumentNode, ExecutableDefinitionNode } from '../language/ast';
|
|
2
|
+
/**
|
|
3
|
+
* Wrapper type that contains DocumentNode and types that can be deduced from it.
|
|
4
|
+
*/
|
|
5
|
+
export interface TypedQueryDocumentNode<
|
|
6
|
+
TResponseData = {
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
},
|
|
9
|
+
TRequestVariables = {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
},
|
|
12
|
+
> extends DocumentNode {
|
|
13
|
+
readonly definitions: ReadonlyArray<ExecutableDefinitionNode>;
|
|
14
|
+
/**
|
|
15
|
+
* This type is used to ensure that the variables you pass in to the query are assignable to Variables
|
|
16
|
+
* and that the Result is assignable to whatever you pass your result to. The method is never actually
|
|
17
|
+
* implemented, but the type is valid because we list it as optional
|
|
18
|
+
*/
|
|
19
|
+
__ensureTypesOfVariablesAndResultMatching?: (
|
|
20
|
+
variables: TRequestVariables,
|
|
21
|
+
) => TResponseData;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Maybe } from '../jsutils/Maybe';
|
|
2
|
+
import type { ObjMap } from '../jsutils/ObjMap';
|
|
3
|
+
import type { ValueNode } from '../language/ast';
|
|
4
|
+
import type { GraphQLInputType } from '../type/definition';
|
|
5
|
+
/**
|
|
6
|
+
* Produces a JavaScript value given a GraphQL Value AST.
|
|
7
|
+
*
|
|
8
|
+
* A GraphQL type must be provided, which will be used to interpret different
|
|
9
|
+
* GraphQL Value literals.
|
|
10
|
+
*
|
|
11
|
+
* Returns `undefined` when the value could not be validly coerced according to
|
|
12
|
+
* the provided type.
|
|
13
|
+
*
|
|
14
|
+
* | GraphQL Value | JSON Value |
|
|
15
|
+
* | -------------------- | ------------- |
|
|
16
|
+
* | Input Object | Object |
|
|
17
|
+
* | List | Array |
|
|
18
|
+
* | Boolean | Boolean |
|
|
19
|
+
* | String | String |
|
|
20
|
+
* | Int / Float | Number |
|
|
21
|
+
* | Enum Value | Unknown |
|
|
22
|
+
* | NullValue | null |
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
export declare function valueFromAST(
|
|
26
|
+
valueNode: Maybe<ValueNode>,
|
|
27
|
+
type: GraphQLInputType,
|
|
28
|
+
variables?: Maybe<ObjMap<unknown>>,
|
|
29
|
+
): unknown;
|