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,177 @@
|
|
|
1
|
+
import { inspect } from '../jsutils/inspect.mjs';
|
|
2
|
+
import { invariant } from '../jsutils/invariant.mjs';
|
|
3
|
+
import { isIterableObject } from '../jsutils/isIterableObject.mjs';
|
|
4
|
+
import { isObjectLike } from '../jsutils/isObjectLike.mjs';
|
|
5
|
+
import { Kind } from '../language/kinds.mjs';
|
|
6
|
+
import {
|
|
7
|
+
isEnumType,
|
|
8
|
+
isInputObjectType,
|
|
9
|
+
isLeafType,
|
|
10
|
+
isListType,
|
|
11
|
+
isNonNullType,
|
|
12
|
+
} from '../type/definition.mjs';
|
|
13
|
+
import { GraphQLID } from '../type/scalars.mjs';
|
|
14
|
+
/**
|
|
15
|
+
* Produces a GraphQL Value AST given a JavaScript object.
|
|
16
|
+
* Function will match JavaScript/JSON values to GraphQL AST schema format
|
|
17
|
+
* by using suggested GraphQLInputType. For example:
|
|
18
|
+
*
|
|
19
|
+
* astFromValue("value", GraphQLString)
|
|
20
|
+
*
|
|
21
|
+
* A GraphQL type must be provided, which will be used to interpret different
|
|
22
|
+
* JavaScript values.
|
|
23
|
+
*
|
|
24
|
+
* | JSON Value | GraphQL Value |
|
|
25
|
+
* | ------------- | -------------------- |
|
|
26
|
+
* | Object | Input Object |
|
|
27
|
+
* | Array | List |
|
|
28
|
+
* | Boolean | Boolean |
|
|
29
|
+
* | String | String / Enum Value |
|
|
30
|
+
* | Number | Int / Float |
|
|
31
|
+
* | Unknown | Enum Value |
|
|
32
|
+
* | null | NullValue |
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
export function astFromValue(value, type) {
|
|
37
|
+
if (isNonNullType(type)) {
|
|
38
|
+
const astValue = astFromValue(value, type.ofType);
|
|
39
|
+
|
|
40
|
+
if (
|
|
41
|
+
(astValue === null || astValue === void 0 ? void 0 : astValue.kind) ===
|
|
42
|
+
Kind.NULL
|
|
43
|
+
) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return astValue;
|
|
48
|
+
} // only explicit null, not undefined, NaN
|
|
49
|
+
|
|
50
|
+
if (value === null) {
|
|
51
|
+
return {
|
|
52
|
+
kind: Kind.NULL,
|
|
53
|
+
};
|
|
54
|
+
} // undefined
|
|
55
|
+
|
|
56
|
+
if (value === undefined) {
|
|
57
|
+
return null;
|
|
58
|
+
} // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but
|
|
59
|
+
// the value is not an array, convert the value using the list's item type.
|
|
60
|
+
|
|
61
|
+
if (isListType(type)) {
|
|
62
|
+
const itemType = type.ofType;
|
|
63
|
+
|
|
64
|
+
if (isIterableObject(value)) {
|
|
65
|
+
const valuesNodes = [];
|
|
66
|
+
|
|
67
|
+
for (const item of value) {
|
|
68
|
+
const itemNode = astFromValue(item, itemType);
|
|
69
|
+
|
|
70
|
+
if (itemNode != null) {
|
|
71
|
+
valuesNodes.push(itemNode);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
kind: Kind.LIST,
|
|
77
|
+
values: valuesNodes,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return astFromValue(value, itemType);
|
|
82
|
+
} // Populate the fields of the input object by creating ASTs from each value
|
|
83
|
+
// in the JavaScript object according to the fields in the input type.
|
|
84
|
+
|
|
85
|
+
if (isInputObjectType(type)) {
|
|
86
|
+
if (!isObjectLike(value)) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const fieldNodes = [];
|
|
91
|
+
|
|
92
|
+
for (const field of Object.values(type.getFields())) {
|
|
93
|
+
const fieldValue = astFromValue(value[field.name], field.type);
|
|
94
|
+
|
|
95
|
+
if (fieldValue) {
|
|
96
|
+
fieldNodes.push({
|
|
97
|
+
kind: Kind.OBJECT_FIELD,
|
|
98
|
+
name: {
|
|
99
|
+
kind: Kind.NAME,
|
|
100
|
+
value: field.name,
|
|
101
|
+
},
|
|
102
|
+
value: fieldValue,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
kind: Kind.OBJECT,
|
|
109
|
+
fields: fieldNodes,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (isLeafType(type)) {
|
|
114
|
+
// Since value is an internally represented value, it must be serialized
|
|
115
|
+
// to an externally represented value before converting into an AST.
|
|
116
|
+
const serialized = type.serialize(value);
|
|
117
|
+
|
|
118
|
+
if (serialized == null) {
|
|
119
|
+
return null;
|
|
120
|
+
} // Others serialize based on their corresponding JavaScript scalar types.
|
|
121
|
+
|
|
122
|
+
if (typeof serialized === 'boolean') {
|
|
123
|
+
return {
|
|
124
|
+
kind: Kind.BOOLEAN,
|
|
125
|
+
value: serialized,
|
|
126
|
+
};
|
|
127
|
+
} // JavaScript numbers can be Int or Float values.
|
|
128
|
+
|
|
129
|
+
if (typeof serialized === 'number' && Number.isFinite(serialized)) {
|
|
130
|
+
const stringNum = String(serialized);
|
|
131
|
+
return integerStringRegExp.test(stringNum)
|
|
132
|
+
? {
|
|
133
|
+
kind: Kind.INT,
|
|
134
|
+
value: stringNum,
|
|
135
|
+
}
|
|
136
|
+
: {
|
|
137
|
+
kind: Kind.FLOAT,
|
|
138
|
+
value: stringNum,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (typeof serialized === 'string') {
|
|
143
|
+
// Enum types use Enum literals.
|
|
144
|
+
if (isEnumType(type)) {
|
|
145
|
+
return {
|
|
146
|
+
kind: Kind.ENUM,
|
|
147
|
+
value: serialized,
|
|
148
|
+
};
|
|
149
|
+
} // ID types can use Int literals.
|
|
150
|
+
|
|
151
|
+
if (type === GraphQLID && integerStringRegExp.test(serialized)) {
|
|
152
|
+
return {
|
|
153
|
+
kind: Kind.INT,
|
|
154
|
+
value: serialized,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return {
|
|
159
|
+
kind: Kind.STRING,
|
|
160
|
+
value: serialized,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
throw new TypeError(`Cannot convert value to AST: ${inspect(serialized)}.`);
|
|
165
|
+
}
|
|
166
|
+
/* c8 ignore next 3 */
|
|
167
|
+
// Not reachable, all possible types have been considered.
|
|
168
|
+
|
|
169
|
+
false || invariant(false, 'Unexpected input type: ' + inspect(type));
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* IntValue:
|
|
173
|
+
* - NegativeSign? 0
|
|
174
|
+
* - NegativeSign? NonZeroDigit ( Digit+ )?
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { DocumentNode } from '../language/ast';
|
|
2
|
+
import type { ParseOptions } from '../language/parser';
|
|
3
|
+
import type { Source } from '../language/source';
|
|
4
|
+
import type { GraphQLSchemaValidationOptions } from '../type/schema';
|
|
5
|
+
import { GraphQLSchema } from '../type/schema';
|
|
6
|
+
export interface BuildSchemaOptions extends GraphQLSchemaValidationOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Set to true to assume the SDL is valid.
|
|
9
|
+
*
|
|
10
|
+
* Default: false
|
|
11
|
+
*/
|
|
12
|
+
assumeValidSDL?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* This takes the ast of a schema document produced by the parse function in
|
|
16
|
+
* src/language/parser.js.
|
|
17
|
+
*
|
|
18
|
+
* If no schema definition is provided, then it will look for types named Query,
|
|
19
|
+
* Mutation and Subscription.
|
|
20
|
+
*
|
|
21
|
+
* Given that AST it constructs a GraphQLSchema. The resulting schema
|
|
22
|
+
* has no resolve methods, so execution will use default resolvers.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildASTSchema(
|
|
25
|
+
documentAST: DocumentNode,
|
|
26
|
+
options?: BuildSchemaOptions,
|
|
27
|
+
): GraphQLSchema;
|
|
28
|
+
/**
|
|
29
|
+
* A helper function to build a GraphQLSchema directly from a source
|
|
30
|
+
* document.
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildSchema(
|
|
33
|
+
source: string | Source,
|
|
34
|
+
options?: BuildSchemaOptions & ParseOptions,
|
|
35
|
+
): GraphQLSchema;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
exports.buildASTSchema = buildASTSchema;
|
|
7
|
+
exports.buildSchema = buildSchema;
|
|
8
|
+
|
|
9
|
+
var _devAssert = require('../jsutils/devAssert.js');
|
|
10
|
+
|
|
11
|
+
var _kinds = require('../language/kinds.js');
|
|
12
|
+
|
|
13
|
+
var _parser = require('../language/parser.js');
|
|
14
|
+
|
|
15
|
+
var _directives = require('../type/directives.js');
|
|
16
|
+
|
|
17
|
+
var _schema = require('../type/schema.js');
|
|
18
|
+
|
|
19
|
+
var _validate = require('../validation/validate.js');
|
|
20
|
+
|
|
21
|
+
var _extendSchema = require('./extendSchema.js');
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* This takes the ast of a schema document produced by the parse function in
|
|
25
|
+
* src/language/parser.js.
|
|
26
|
+
*
|
|
27
|
+
* If no schema definition is provided, then it will look for types named Query,
|
|
28
|
+
* Mutation and Subscription.
|
|
29
|
+
*
|
|
30
|
+
* Given that AST it constructs a GraphQLSchema. The resulting schema
|
|
31
|
+
* has no resolve methods, so execution will use default resolvers.
|
|
32
|
+
*/
|
|
33
|
+
function buildASTSchema(documentAST, options) {
|
|
34
|
+
(documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT) ||
|
|
35
|
+
(0, _devAssert.devAssert)(false, 'Must provide valid Document AST.');
|
|
36
|
+
|
|
37
|
+
if (
|
|
38
|
+
(options === null || options === void 0 ? void 0 : options.assumeValid) !==
|
|
39
|
+
true &&
|
|
40
|
+
(options === null || options === void 0
|
|
41
|
+
? void 0
|
|
42
|
+
: options.assumeValidSDL) !== true
|
|
43
|
+
) {
|
|
44
|
+
(0, _validate.assertValidSDL)(documentAST);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const emptySchemaConfig = {
|
|
48
|
+
description: undefined,
|
|
49
|
+
types: [],
|
|
50
|
+
directives: [],
|
|
51
|
+
extensions: Object.create(null),
|
|
52
|
+
extensionASTNodes: [],
|
|
53
|
+
assumeValid: false,
|
|
54
|
+
};
|
|
55
|
+
const config = (0, _extendSchema.extendSchemaImpl)(
|
|
56
|
+
emptySchemaConfig,
|
|
57
|
+
documentAST,
|
|
58
|
+
options,
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
if (config.astNode == null) {
|
|
62
|
+
for (const type of config.types) {
|
|
63
|
+
switch (type.name) {
|
|
64
|
+
// Note: While this could make early assertions to get the correctly
|
|
65
|
+
// typed values below, that would throw immediately while type system
|
|
66
|
+
// validation with validateSchema() will produce more actionable results.
|
|
67
|
+
case 'Query':
|
|
68
|
+
// @ts-expect-error validated in `validateSchema`
|
|
69
|
+
config.query = type;
|
|
70
|
+
break;
|
|
71
|
+
|
|
72
|
+
case 'Mutation':
|
|
73
|
+
// @ts-expect-error validated in `validateSchema`
|
|
74
|
+
config.mutation = type;
|
|
75
|
+
break;
|
|
76
|
+
|
|
77
|
+
case 'Subscription':
|
|
78
|
+
// @ts-expect-error validated in `validateSchema`
|
|
79
|
+
config.subscription = type;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const directives = [
|
|
86
|
+
...config.directives, // If specified directives were not explicitly declared, add them.
|
|
87
|
+
..._directives.specifiedDirectives.filter((stdDirective) =>
|
|
88
|
+
config.directives.every(
|
|
89
|
+
(directive) => directive.name !== stdDirective.name,
|
|
90
|
+
),
|
|
91
|
+
),
|
|
92
|
+
];
|
|
93
|
+
return new _schema.GraphQLSchema({ ...config, directives });
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* A helper function to build a GraphQLSchema directly from a source
|
|
97
|
+
* document.
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
function buildSchema(source, options) {
|
|
101
|
+
const document = (0, _parser.parse)(source, {
|
|
102
|
+
noLocation:
|
|
103
|
+
options === null || options === void 0 ? void 0 : options.noLocation,
|
|
104
|
+
allowLegacyFragmentVariables:
|
|
105
|
+
options === null || options === void 0
|
|
106
|
+
? void 0
|
|
107
|
+
: options.allowLegacyFragmentVariables,
|
|
108
|
+
});
|
|
109
|
+
return buildASTSchema(document, {
|
|
110
|
+
assumeValidSDL:
|
|
111
|
+
options === null || options === void 0 ? void 0 : options.assumeValidSDL,
|
|
112
|
+
assumeValid:
|
|
113
|
+
options === null || options === void 0 ? void 0 : options.assumeValid,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { devAssert } from '../jsutils/devAssert.mjs';
|
|
2
|
+
import { Kind } from '../language/kinds.mjs';
|
|
3
|
+
import { parse } from '../language/parser.mjs';
|
|
4
|
+
import { specifiedDirectives } from '../type/directives.mjs';
|
|
5
|
+
import { GraphQLSchema } from '../type/schema.mjs';
|
|
6
|
+
import { assertValidSDL } from '../validation/validate.mjs';
|
|
7
|
+
import { extendSchemaImpl } from './extendSchema.mjs';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* This takes the ast of a schema document produced by the parse function in
|
|
11
|
+
* src/language/parser.js.
|
|
12
|
+
*
|
|
13
|
+
* If no schema definition is provided, then it will look for types named Query,
|
|
14
|
+
* Mutation and Subscription.
|
|
15
|
+
*
|
|
16
|
+
* Given that AST it constructs a GraphQLSchema. The resulting schema
|
|
17
|
+
* has no resolve methods, so execution will use default resolvers.
|
|
18
|
+
*/
|
|
19
|
+
export function buildASTSchema(documentAST, options) {
|
|
20
|
+
(documentAST != null && documentAST.kind === Kind.DOCUMENT) ||
|
|
21
|
+
devAssert(false, 'Must provide valid Document AST.');
|
|
22
|
+
|
|
23
|
+
if (
|
|
24
|
+
(options === null || options === void 0 ? void 0 : options.assumeValid) !==
|
|
25
|
+
true &&
|
|
26
|
+
(options === null || options === void 0
|
|
27
|
+
? void 0
|
|
28
|
+
: options.assumeValidSDL) !== true
|
|
29
|
+
) {
|
|
30
|
+
assertValidSDL(documentAST);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const emptySchemaConfig = {
|
|
34
|
+
description: undefined,
|
|
35
|
+
types: [],
|
|
36
|
+
directives: [],
|
|
37
|
+
extensions: Object.create(null),
|
|
38
|
+
extensionASTNodes: [],
|
|
39
|
+
assumeValid: false,
|
|
40
|
+
};
|
|
41
|
+
const config = extendSchemaImpl(emptySchemaConfig, documentAST, options);
|
|
42
|
+
|
|
43
|
+
if (config.astNode == null) {
|
|
44
|
+
for (const type of config.types) {
|
|
45
|
+
switch (type.name) {
|
|
46
|
+
// Note: While this could make early assertions to get the correctly
|
|
47
|
+
// typed values below, that would throw immediately while type system
|
|
48
|
+
// validation with validateSchema() will produce more actionable results.
|
|
49
|
+
case 'Query':
|
|
50
|
+
// @ts-expect-error validated in `validateSchema`
|
|
51
|
+
config.query = type;
|
|
52
|
+
break;
|
|
53
|
+
|
|
54
|
+
case 'Mutation':
|
|
55
|
+
// @ts-expect-error validated in `validateSchema`
|
|
56
|
+
config.mutation = type;
|
|
57
|
+
break;
|
|
58
|
+
|
|
59
|
+
case 'Subscription':
|
|
60
|
+
// @ts-expect-error validated in `validateSchema`
|
|
61
|
+
config.subscription = type;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const directives = [
|
|
68
|
+
...config.directives, // If specified directives were not explicitly declared, add them.
|
|
69
|
+
...specifiedDirectives.filter((stdDirective) =>
|
|
70
|
+
config.directives.every(
|
|
71
|
+
(directive) => directive.name !== stdDirective.name,
|
|
72
|
+
),
|
|
73
|
+
),
|
|
74
|
+
];
|
|
75
|
+
return new GraphQLSchema({ ...config, directives });
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A helper function to build a GraphQLSchema directly from a source
|
|
79
|
+
* document.
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
export function buildSchema(source, options) {
|
|
83
|
+
const document = parse(source, {
|
|
84
|
+
noLocation:
|
|
85
|
+
options === null || options === void 0 ? void 0 : options.noLocation,
|
|
86
|
+
allowLegacyFragmentVariables:
|
|
87
|
+
options === null || options === void 0
|
|
88
|
+
? void 0
|
|
89
|
+
: options.allowLegacyFragmentVariables,
|
|
90
|
+
});
|
|
91
|
+
return buildASTSchema(document, {
|
|
92
|
+
assumeValidSDL:
|
|
93
|
+
options === null || options === void 0 ? void 0 : options.assumeValidSDL,
|
|
94
|
+
assumeValid:
|
|
95
|
+
options === null || options === void 0 ? void 0 : options.assumeValid,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { GraphQLSchemaValidationOptions } from '../type/schema';
|
|
2
|
+
import { GraphQLSchema } from '../type/schema';
|
|
3
|
+
import type { IntrospectionQuery } from './getIntrospectionQuery';
|
|
4
|
+
/**
|
|
5
|
+
* Build a GraphQLSchema for use by client tools.
|
|
6
|
+
*
|
|
7
|
+
* Given the result of a client running the introspection query, creates and
|
|
8
|
+
* returns a GraphQLSchema instance which can be then used with all graphql-js
|
|
9
|
+
* tools, but cannot be used to execute a query, as introspection does not
|
|
10
|
+
* represent the "resolver", "parse" or "serialize" functions or any other
|
|
11
|
+
* server-internal mechanisms.
|
|
12
|
+
*
|
|
13
|
+
* This function expects a complete introspection result. Don't forget to check
|
|
14
|
+
* the "errors" field of a server response before calling this function.
|
|
15
|
+
*/
|
|
16
|
+
export declare function buildClientSchema(
|
|
17
|
+
introspection: IntrospectionQuery,
|
|
18
|
+
options?: GraphQLSchemaValidationOptions,
|
|
19
|
+
): GraphQLSchema;
|