graphql 16.14.0 → 16.14.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/error/GraphQLError.d.ts +151 -15
- package/error/GraphQLError.js +143 -12
- package/error/GraphQLError.mjs +143 -12
- package/error/index.d.ts +6 -0
- package/error/index.mjs +6 -0
- package/error/locatedError.d.ts +20 -0
- package/error/locatedError.js +21 -0
- package/error/locatedError.mjs +20 -0
- package/error/syntaxError.d.ts +15 -0
- package/error/syntaxError.js +16 -0
- package/error/syntaxError.mjs +15 -0
- package/execution/collectFields.js +6 -0
- package/execution/collectFields.mjs +6 -0
- package/execution/execute.d.ts +211 -12
- package/execution/execute.js +214 -23
- package/execution/execute.mjs +213 -23
- package/execution/index.d.ts +6 -0
- package/execution/index.mjs +6 -0
- package/execution/mapAsyncIterator.d.ts +2 -0
- package/execution/mapAsyncIterator.js +2 -0
- package/execution/mapAsyncIterator.mjs +2 -0
- package/execution/subscribe.d.ts +195 -5
- package/execution/subscribe.js +154 -11
- package/execution/subscribe.mjs +153 -11
- package/execution/values.d.ts +167 -10
- package/execution/values.js +149 -5
- package/execution/values.mjs +148 -5
- package/graphql.d.ts +163 -41
- package/graphql.js +126 -4
- package/graphql.mjs +131 -41
- package/index.d.ts +11 -17
- package/index.mjs +13 -19
- package/jsutils/Maybe.d.ts +5 -1
- package/jsutils/ObjMap.d.ts +4 -0
- package/jsutils/Path.d.ts +30 -0
- package/jsutils/Path.js +29 -0
- package/jsutils/Path.mjs +29 -0
- package/jsutils/PromiseOrValue.d.ts +1 -0
- package/jsutils/devAssert.d.ts +1 -0
- package/jsutils/devAssert.js +1 -0
- package/jsutils/devAssert.mjs +1 -0
- package/jsutils/didYouMean.d.ts +4 -1
- package/jsutils/didYouMean.js +4 -1
- package/jsutils/didYouMean.mjs +4 -1
- package/jsutils/groupBy.d.ts +2 -0
- package/jsutils/groupBy.js +2 -0
- package/jsutils/groupBy.mjs +2 -0
- package/jsutils/identityFunc.d.ts +2 -0
- package/jsutils/identityFunc.js +2 -0
- package/jsutils/identityFunc.mjs +2 -0
- package/jsutils/inspect.d.ts +2 -0
- package/jsutils/inspect.js +2 -0
- package/jsutils/inspect.mjs +2 -0
- package/jsutils/instanceOf.d.ts +2 -0
- package/jsutils/instanceOf.js +2 -0
- package/jsutils/instanceOf.mjs +2 -0
- package/jsutils/invariant.d.ts +1 -0
- package/jsutils/invariant.js +1 -0
- package/jsutils/invariant.mjs +1 -0
- package/jsutils/isAsyncIterable.d.ts +2 -0
- package/jsutils/isAsyncIterable.js +2 -0
- package/jsutils/isAsyncIterable.mjs +2 -0
- package/jsutils/isIterableObject.d.ts +6 -5
- package/jsutils/isIterableObject.js +6 -5
- package/jsutils/isIterableObject.mjs +6 -5
- package/jsutils/isObjectLike.d.ts +2 -0
- package/jsutils/isObjectLike.js +2 -0
- package/jsutils/isObjectLike.mjs +2 -0
- package/jsutils/isPromise.d.ts +2 -0
- package/jsutils/isPromise.js +2 -0
- package/jsutils/isPromise.mjs +2 -0
- package/jsutils/keyMap.d.ts +7 -14
- package/jsutils/keyMap.js +7 -14
- package/jsutils/keyMap.mjs +7 -14
- package/jsutils/keyValMap.d.ts +9 -6
- package/jsutils/keyValMap.js +9 -6
- package/jsutils/keyValMap.mjs +9 -6
- package/jsutils/mapValue.d.ts +2 -0
- package/jsutils/mapValue.js +2 -0
- package/jsutils/mapValue.mjs +2 -0
- package/jsutils/memoize3.d.ts +2 -0
- package/jsutils/memoize3.js +2 -0
- package/jsutils/memoize3.mjs +2 -0
- package/jsutils/naturalCompare.d.ts +2 -0
- package/jsutils/naturalCompare.js +2 -0
- package/jsutils/naturalCompare.mjs +2 -0
- package/jsutils/printPathArray.d.ts +2 -0
- package/jsutils/printPathArray.js +2 -0
- package/jsutils/printPathArray.mjs +2 -0
- package/jsutils/promiseForObject.d.ts +2 -0
- package/jsutils/promiseForObject.js +2 -0
- package/jsutils/promiseForObject.mjs +2 -0
- package/jsutils/promiseReduce.d.ts +2 -0
- package/jsutils/promiseReduce.js +2 -0
- package/jsutils/promiseReduce.mjs +2 -0
- package/jsutils/suggestionList.d.ts +2 -0
- package/jsutils/suggestionList.js +4 -0
- package/jsutils/suggestionList.mjs +4 -0
- package/jsutils/toError.d.ts +2 -0
- package/jsutils/toError.js +2 -0
- package/jsutils/toError.mjs +2 -0
- package/jsutils/toObjMap.d.ts +1 -0
- package/jsutils/toObjMap.js +1 -0
- package/jsutils/toObjMap.mjs +1 -0
- package/language/ast.d.ts +412 -54
- package/language/ast.js +95 -38
- package/language/ast.mjs +95 -38
- package/language/blockString.d.ts +1 -3
- package/language/blockString.js +1 -3
- package/language/blockString.mjs +1 -3
- package/language/directiveLocation.d.ts +28 -8
- package/language/directiveLocation.js +9 -6
- package/language/directiveLocation.mjs +9 -6
- package/language/index.d.ts +6 -0
- package/language/index.mjs +6 -0
- package/language/kinds.d.ts +57 -18
- package/language/kinds.js +9 -6
- package/language/kinds.mjs +9 -6
- package/language/lexer.d.ts +47 -14
- package/language/lexer.js +71 -13
- package/language/lexer.mjs +70 -13
- package/language/location.d.ts +16 -3
- package/language/location.js +14 -3
- package/language/location.mjs +14 -3
- package/language/parser.d.ts +236 -13
- package/language/parser.js +224 -0
- package/language/parser.mjs +224 -3
- package/language/predicates.d.ts +169 -0
- package/language/predicates.js +170 -0
- package/language/predicates.mjs +180 -0
- package/language/printLocation.d.ts +28 -0
- package/language/printLocation.js +29 -0
- package/language/printLocation.mjs +28 -0
- package/language/printString.d.ts +2 -0
- package/language/printString.js +5 -1
- package/language/printString.mjs +5 -1
- package/language/printer.d.ts +12 -0
- package/language/printer.js +19 -0
- package/language/printer.mjs +18 -0
- package/language/schemaCoordinateLexer.d.ts +8 -6
- package/language/schemaCoordinateLexer.js +10 -6
- package/language/schemaCoordinateLexer.mjs +10 -6
- package/language/source.d.ts +28 -0
- package/language/source.js +32 -0
- package/language/source.mjs +31 -0
- package/language/tokenKind.d.ts +30 -3
- package/language/tokenKind.js +8 -3
- package/language/tokenKind.mjs +8 -3
- package/language/visitor.d.ts +200 -72
- package/language/visitor.js +122 -50
- package/language/visitor.mjs +122 -54
- package/package.json +1 -1
- package/subscription/index.d.ts +9 -3
- package/subscription/index.mjs +9 -3
- package/type/assertName.d.ts +18 -1
- package/type/assertName.js +19 -1
- package/type/assertName.mjs +18 -1
- package/type/definition.d.ts +2540 -79
- package/type/definition.js +2214 -61
- package/type/definition.mjs +2241 -60
- package/type/directives.d.ts +193 -18
- package/type/directives.js +196 -19
- package/type/directives.mjs +196 -19
- package/type/index.d.ts +6 -0
- package/type/index.mjs +6 -0
- package/type/introspection.d.ts +36 -0
- package/type/introspection.js +33 -0
- package/type/introspection.mjs +41 -0
- package/type/scalars.d.ts +29 -2
- package/type/scalars.js +37 -2
- package/type/scalars.mjs +36 -2
- package/type/schema.d.ts +490 -28
- package/type/schema.js +484 -26
- package/type/schema.mjs +484 -26
- package/type/validate.d.ts +31 -0
- package/type/validate.js +32 -0
- package/type/validate.mjs +31 -0
- package/utilities/TypeInfo.d.ts +441 -1
- package/utilities/TypeInfo.js +444 -1
- package/utilities/TypeInfo.mjs +443 -1
- package/utilities/assertValidName.d.ts +27 -2
- package/utilities/assertValidName.js +28 -2
- package/utilities/assertValidName.mjs +27 -2
- package/utilities/astFromValue.d.ts +33 -3
- package/utilities/astFromValue.js +36 -3
- package/utilities/astFromValue.mjs +35 -3
- package/utilities/buildASTSchema.d.ts +65 -6
- package/utilities/buildASTSchema.js +65 -6
- package/utilities/buildASTSchema.mjs +65 -6
- package/utilities/buildClientSchema.d.ts +15 -0
- package/utilities/buildClientSchema.js +16 -0
- package/utilities/buildClientSchema.mjs +15 -0
- package/utilities/coerceInputValue.d.ts +46 -0
- package/utilities/coerceInputValue.js +47 -0
- package/utilities/coerceInputValue.mjs +46 -0
- package/utilities/concatAST.d.ts +12 -0
- package/utilities/concatAST.js +13 -0
- package/utilities/concatAST.mjs +12 -0
- package/utilities/extendSchema.d.ts +56 -3
- package/utilities/extendSchema.js +63 -3
- package/utilities/extendSchema.mjs +62 -3
- package/utilities/findBreakingChanges.d.ts +95 -0
- package/utilities/findBreakingChanges.js +68 -0
- package/utilities/findBreakingChanges.mjs +70 -0
- package/utilities/getIntrospectionQuery.d.ts +132 -0
- package/utilities/getIntrospectionQuery.js +41 -0
- package/utilities/getIntrospectionQuery.mjs +41 -0
- package/utilities/getOperationAST.d.ts +15 -0
- package/utilities/getOperationAST.js +16 -0
- package/utilities/getOperationAST.mjs +15 -0
- package/utilities/getOperationRootType.d.ts +18 -1
- package/utilities/getOperationRootType.js +19 -1
- package/utilities/getOperationRootType.mjs +18 -1
- package/utilities/index.d.ts +7 -0
- package/utilities/index.mjs +7 -0
- package/utilities/introspectionFromSchema.d.ts +54 -0
- package/utilities/introspectionFromSchema.js +55 -0
- package/utilities/introspectionFromSchema.mjs +54 -0
- package/utilities/lexicographicSortSchema.d.ts +35 -0
- package/utilities/lexicographicSortSchema.js +36 -0
- package/utilities/lexicographicSortSchema.mjs +35 -0
- package/utilities/printSchema.d.ts +63 -0
- package/utilities/printSchema.js +66 -0
- package/utilities/printSchema.mjs +67 -0
- package/utilities/resolveSchemaCoordinate.d.ts +62 -0
- package/utilities/resolveSchemaCoordinate.js +64 -0
- package/utilities/resolveSchemaCoordinate.mjs +63 -0
- package/utilities/separateOperations.d.ts +30 -0
- package/utilities/separateOperations.js +31 -0
- package/utilities/separateOperations.mjs +30 -0
- package/utilities/stripIgnoredCharacters.d.ts +13 -6
- package/utilities/stripIgnoredCharacters.js +16 -6
- package/utilities/stripIgnoredCharacters.mjs +15 -6
- package/utilities/typeComparators.d.ts +84 -0
- package/utilities/typeComparators.js +85 -0
- package/utilities/typeComparators.mjs +84 -0
- package/utilities/typeFromAST.d.ts +86 -0
- package/utilities/typeFromAST.js +3 -0
- package/utilities/typeFromAST.mjs +3 -0
- package/utilities/typedQueryDocumentNode.d.ts +4 -0
- package/utilities/valueFromAST.d.ts +38 -0
- package/utilities/valueFromAST.js +39 -0
- package/utilities/valueFromAST.mjs +38 -0
- package/utilities/valueFromASTUntyped.d.ts +15 -2
- package/utilities/valueFromASTUntyped.js +16 -2
- package/utilities/valueFromASTUntyped.mjs +15 -2
- package/validation/ValidationContext.d.ts +399 -0
- package/validation/ValidationContext.js +400 -0
- package/validation/ValidationContext.mjs +401 -0
- package/validation/index.d.ts +6 -0
- package/validation/index.mjs +6 -0
- package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
- package/validation/rules/ExecutableDefinitionsRule.js +29 -0
- package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
- package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
- package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
- package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
- package/validation/rules/KnownArgumentNamesRule.js +30 -3
- package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
- package/validation/rules/KnownDirectivesRule.d.ts +28 -0
- package/validation/rules/KnownDirectivesRule.js +29 -0
- package/validation/rules/KnownDirectivesRule.mjs +28 -0
- package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
- package/validation/rules/KnownFragmentNamesRule.js +29 -0
- package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
- package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
- package/validation/rules/KnownTypeNamesRule.js +29 -0
- package/validation/rules/KnownTypeNamesRule.mjs +28 -0
- package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
- package/validation/rules/LoneAnonymousOperationRule.js +29 -0
- package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
- package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
- package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
- package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
- package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
- package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
- package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
- package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
- package/validation/rules/NoFragmentCyclesRule.js +29 -0
- package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
- package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
- package/validation/rules/NoUndefinedVariablesRule.js +29 -0
- package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
- package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
- package/validation/rules/NoUnusedFragmentsRule.js +29 -0
- package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
- package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
- package/validation/rules/NoUnusedVariablesRule.js +30 -0
- package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
- package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
- package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
- package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
- package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
- package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
- package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
- package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
- package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
- package/validation/rules/ScalarLeafsRule.d.ts +28 -0
- package/validation/rules/ScalarLeafsRule.js +29 -0
- package/validation/rules/ScalarLeafsRule.mjs +28 -0
- package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
- package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
- package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
- package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
- package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueArgumentNamesRule.js +29 -0
- package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
- package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
- package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
- package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.js +29 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +28 -0
- package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
- package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
- package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
- package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
- package/validation/rules/UniqueFragmentNamesRule.js +29 -0
- package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
- package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
- package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
- package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
- package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
- package/validation/rules/UniqueOperationNamesRule.js +29 -0
- package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
- package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
- package/validation/rules/UniqueOperationTypesRule.js +22 -0
- package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
- package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
- package/validation/rules/UniqueTypeNamesRule.js +22 -0
- package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
- package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
- package/validation/rules/UniqueVariableNamesRule.js +29 -0
- package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
- package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
- package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
- package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
- package/validation/rules/VariablesAreInputTypesRule.js +33 -0
- package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
- package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
- package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
- package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
- package/validation/specifiedRules.d.ts +2 -3
- package/validation/specifiedRules.js +2 -3
- package/validation/specifiedRules.mjs +2 -3
- package/validation/validate.d.ts +70 -9
- package/validation/validate.js +63 -7
- package/validation/validate.mjs +63 -7
- package/version.d.ts +3 -6
- package/version.js +6 -8
- package/version.mjs +5 -8
|
@@ -1,12 +1,11 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import type { Maybe } from '../jsutils/Maybe';
|
|
2
3
|
import type { ValueNode } from '../language/ast';
|
|
3
4
|
import type { GraphQLInputType } from '../type/definition';
|
|
4
5
|
/**
|
|
5
6
|
* Produces a GraphQL Value AST given a JavaScript object.
|
|
6
7
|
* Function will match JavaScript/JSON values to GraphQL AST schema format
|
|
7
|
-
* by using suggested GraphQLInputType.
|
|
8
|
-
*
|
|
9
|
-
* astFromValue("value", GraphQLString)
|
|
8
|
+
* by using suggested GraphQLInputType.
|
|
10
9
|
*
|
|
11
10
|
* A GraphQL type must be provided, which will be used to interpret different
|
|
12
11
|
* JavaScript values.
|
|
@@ -20,7 +19,38 @@ import type { GraphQLInputType } from '../type/definition';
|
|
|
20
19
|
* | Number | Int / Float |
|
|
21
20
|
* | Unknown | Enum Value |
|
|
22
21
|
* | null | NullValue |
|
|
22
|
+
* @param value - Runtime value to convert.
|
|
23
|
+
* @param type - The GraphQL type to inspect.
|
|
24
|
+
* @returns A GraphQL value AST for the provided JavaScript value, or null when no literal can represent it.
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { print } from 'graphql/language';
|
|
28
|
+
* import {
|
|
29
|
+
* GraphQLInputObjectType,
|
|
30
|
+
* GraphQLInt,
|
|
31
|
+
* GraphQLList,
|
|
32
|
+
* GraphQLNonNull,
|
|
33
|
+
* GraphQLString,
|
|
34
|
+
* } from 'graphql/type';
|
|
35
|
+
* import { astFromValue } from 'graphql/utilities';
|
|
36
|
+
*
|
|
37
|
+
* const ReviewInput = new GraphQLInputObjectType({
|
|
38
|
+
* name: 'ReviewInput',
|
|
39
|
+
* fields: {
|
|
40
|
+
* stars: { type: new GraphQLNonNull(GraphQLInt) },
|
|
41
|
+
* tags: { type: new GraphQLList(GraphQLString) },
|
|
42
|
+
* },
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* const valueNode = astFromValue(
|
|
46
|
+
* { stars: 5, tags: ['featured', 'verified'] },
|
|
47
|
+
* ReviewInput,
|
|
48
|
+
* );
|
|
23
49
|
*
|
|
50
|
+
* print(valueNode); // => '{ stars: 5, tags: ["featured", "verified"] }'
|
|
51
|
+
* astFromValue(undefined, GraphQLString); // => null
|
|
52
|
+
* astFromValue(null, new GraphQLNonNull(GraphQLString)); // => null
|
|
53
|
+
* ```
|
|
24
54
|
*/
|
|
25
55
|
export declare function astFromValue(
|
|
26
56
|
value: unknown,
|
|
@@ -19,12 +19,12 @@ var _definition = require('../type/definition.js');
|
|
|
19
19
|
|
|
20
20
|
var _scalars = require('../type/scalars.js');
|
|
21
21
|
|
|
22
|
+
/** @category Values */
|
|
23
|
+
|
|
22
24
|
/**
|
|
23
25
|
* Produces a GraphQL Value AST given a JavaScript object.
|
|
24
26
|
* Function will match JavaScript/JSON values to GraphQL AST schema format
|
|
25
|
-
* by using suggested GraphQLInputType.
|
|
26
|
-
*
|
|
27
|
-
* astFromValue("value", GraphQLString)
|
|
27
|
+
* by using suggested GraphQLInputType.
|
|
28
28
|
*
|
|
29
29
|
* A GraphQL type must be provided, which will be used to interpret different
|
|
30
30
|
* JavaScript values.
|
|
@@ -38,7 +38,38 @@ var _scalars = require('../type/scalars.js');
|
|
|
38
38
|
* | Number | Int / Float |
|
|
39
39
|
* | Unknown | Enum Value |
|
|
40
40
|
* | null | NullValue |
|
|
41
|
+
* @param value - Runtime value to convert.
|
|
42
|
+
* @param type - The GraphQL type to inspect.
|
|
43
|
+
* @returns A GraphQL value AST for the provided JavaScript value, or null when no literal can represent it.
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { print } from 'graphql/language';
|
|
47
|
+
* import {
|
|
48
|
+
* GraphQLInputObjectType,
|
|
49
|
+
* GraphQLInt,
|
|
50
|
+
* GraphQLList,
|
|
51
|
+
* GraphQLNonNull,
|
|
52
|
+
* GraphQLString,
|
|
53
|
+
* } from 'graphql/type';
|
|
54
|
+
* import { astFromValue } from 'graphql/utilities';
|
|
55
|
+
*
|
|
56
|
+
* const ReviewInput = new GraphQLInputObjectType({
|
|
57
|
+
* name: 'ReviewInput',
|
|
58
|
+
* fields: {
|
|
59
|
+
* stars: { type: new GraphQLNonNull(GraphQLInt) },
|
|
60
|
+
* tags: { type: new GraphQLList(GraphQLString) },
|
|
61
|
+
* },
|
|
62
|
+
* });
|
|
41
63
|
*
|
|
64
|
+
* const valueNode = astFromValue(
|
|
65
|
+
* { stars: 5, tags: ['featured', 'verified'] },
|
|
66
|
+
* ReviewInput,
|
|
67
|
+
* );
|
|
68
|
+
*
|
|
69
|
+
* print(valueNode); // => '{ stars: 5, tags: ["featured", "verified"] }'
|
|
70
|
+
* astFromValue(undefined, GraphQLString); // => null
|
|
71
|
+
* astFromValue(null, new GraphQLNonNull(GraphQLString)); // => null
|
|
72
|
+
* ```
|
|
42
73
|
*/
|
|
43
74
|
function astFromValue(value, type) {
|
|
44
75
|
if ((0, _definition.isNonNullType)(type)) {
|
|
@@ -185,6 +216,8 @@ function astFromValue(value, type) {
|
|
|
185
216
|
* IntValue:
|
|
186
217
|
* - NegativeSign? 0
|
|
187
218
|
* - NegativeSign? NonZeroDigit ( Digit+ )?
|
|
219
|
+
*
|
|
220
|
+
* @internal
|
|
188
221
|
*/
|
|
189
222
|
|
|
190
223
|
const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import { inspect } from '../jsutils/inspect.mjs';
|
|
2
3
|
import { invariant } from '../jsutils/invariant.mjs';
|
|
3
4
|
import { isIterableObject } from '../jsutils/isIterableObject.mjs';
|
|
@@ -14,9 +15,7 @@ import { GraphQLID } from '../type/scalars.mjs';
|
|
|
14
15
|
/**
|
|
15
16
|
* Produces a GraphQL Value AST given a JavaScript object.
|
|
16
17
|
* Function will match JavaScript/JSON values to GraphQL AST schema format
|
|
17
|
-
* by using suggested GraphQLInputType.
|
|
18
|
-
*
|
|
19
|
-
* astFromValue("value", GraphQLString)
|
|
18
|
+
* by using suggested GraphQLInputType.
|
|
20
19
|
*
|
|
21
20
|
* A GraphQL type must be provided, which will be used to interpret different
|
|
22
21
|
* JavaScript values.
|
|
@@ -30,7 +29,38 @@ import { GraphQLID } from '../type/scalars.mjs';
|
|
|
30
29
|
* | Number | Int / Float |
|
|
31
30
|
* | Unknown | Enum Value |
|
|
32
31
|
* | null | NullValue |
|
|
32
|
+
* @param value - Runtime value to convert.
|
|
33
|
+
* @param type - The GraphQL type to inspect.
|
|
34
|
+
* @returns A GraphQL value AST for the provided JavaScript value, or null when no literal can represent it.
|
|
35
|
+
* @example
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { print } from 'graphql/language';
|
|
38
|
+
* import {
|
|
39
|
+
* GraphQLInputObjectType,
|
|
40
|
+
* GraphQLInt,
|
|
41
|
+
* GraphQLList,
|
|
42
|
+
* GraphQLNonNull,
|
|
43
|
+
* GraphQLString,
|
|
44
|
+
* } from 'graphql/type';
|
|
45
|
+
* import { astFromValue } from 'graphql/utilities';
|
|
46
|
+
*
|
|
47
|
+
* const ReviewInput = new GraphQLInputObjectType({
|
|
48
|
+
* name: 'ReviewInput',
|
|
49
|
+
* fields: {
|
|
50
|
+
* stars: { type: new GraphQLNonNull(GraphQLInt) },
|
|
51
|
+
* tags: { type: new GraphQLList(GraphQLString) },
|
|
52
|
+
* },
|
|
53
|
+
* });
|
|
33
54
|
*
|
|
55
|
+
* const valueNode = astFromValue(
|
|
56
|
+
* { stars: 5, tags: ['featured', 'verified'] },
|
|
57
|
+
* ReviewInput,
|
|
58
|
+
* );
|
|
59
|
+
*
|
|
60
|
+
* print(valueNode); // => '{ stars: 5, tags: ["featured", "verified"] }'
|
|
61
|
+
* astFromValue(undefined, GraphQLString); // => null
|
|
62
|
+
* astFromValue(null, new GraphQLNonNull(GraphQLString)); // => null
|
|
63
|
+
* ```
|
|
34
64
|
*/
|
|
35
65
|
|
|
36
66
|
export function astFromValue(value, type) {
|
|
@@ -172,6 +202,8 @@ export function astFromValue(value, type) {
|
|
|
172
202
|
* IntValue:
|
|
173
203
|
* - NegativeSign? 0
|
|
174
204
|
* - NegativeSign? NonZeroDigit ( Digit+ )?
|
|
205
|
+
*
|
|
206
|
+
* @internal
|
|
175
207
|
*/
|
|
176
208
|
|
|
177
209
|
const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
/** @category Schema Construction */
|
|
1
2
|
import type { DocumentNode } from '../language/ast';
|
|
2
3
|
import type { ParseOptions } from '../language/parser';
|
|
3
4
|
import type { Source } from '../language/source';
|
|
4
5
|
import type { GraphQLSchemaValidationOptions } from '../type/schema';
|
|
5
6
|
import { GraphQLSchema } from '../type/schema';
|
|
7
|
+
/** Options used when building a schema from SDL or a parsed SDL document. */
|
|
6
8
|
export interface BuildSchemaOptions extends GraphQLSchemaValidationOptions {
|
|
7
9
|
/**
|
|
8
10
|
* Set to true to assume the SDL is valid.
|
|
@@ -12,22 +14,79 @@ export interface BuildSchemaOptions extends GraphQLSchemaValidationOptions {
|
|
|
12
14
|
assumeValidSDL?: boolean;
|
|
13
15
|
}
|
|
14
16
|
/**
|
|
15
|
-
*
|
|
16
|
-
* src/language/parser.js.
|
|
17
|
+
* Builds a GraphQLSchema from a parsed schema definition language document.
|
|
17
18
|
*
|
|
18
19
|
* If no schema definition is provided, then it will look for types named Query,
|
|
19
20
|
* Mutation and Subscription.
|
|
20
21
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
22
|
+
* The resulting schema has no resolver functions, so execution will use the
|
|
23
|
+
* default field resolver.
|
|
24
|
+
* @param documentAST - The parsed GraphQL document AST.
|
|
25
|
+
* @param options - Optional configuration for this operation.
|
|
26
|
+
* @returns The schema built from the provided SDL document.
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* // Build a schema from a valid parsed SDL document.
|
|
30
|
+
* import { parse } from 'graphql/language';
|
|
31
|
+
* import { buildASTSchema } from 'graphql/utilities';
|
|
32
|
+
*
|
|
33
|
+
* const document = parse('type Query { hello: String }');
|
|
34
|
+
* const schema = buildASTSchema(document);
|
|
35
|
+
*
|
|
36
|
+
* schema.getQueryType().name; // => 'Query'
|
|
37
|
+
* ```
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* // This variant uses validation options when the SDL references unknown types.
|
|
41
|
+
* import { parse } from 'graphql/language';
|
|
42
|
+
* import { buildASTSchema } from 'graphql/utilities';
|
|
43
|
+
*
|
|
44
|
+
* const document = parse('type Query { broken: MissingType }');
|
|
45
|
+
*
|
|
46
|
+
* buildASTSchema(document); // throws an error
|
|
47
|
+
* buildASTSchema(document, {
|
|
48
|
+
* assumeValid: true,
|
|
49
|
+
* assumeValidSDL: true,
|
|
50
|
+
* }); // does not throw
|
|
51
|
+
* ```
|
|
23
52
|
*/
|
|
24
53
|
export declare function buildASTSchema(
|
|
25
54
|
documentAST: DocumentNode,
|
|
26
55
|
options?: BuildSchemaOptions,
|
|
27
56
|
): GraphQLSchema;
|
|
28
57
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
58
|
+
* Builds a GraphQLSchema directly from a schema definition language source.
|
|
59
|
+
* @param source - The GraphQL source text or source object.
|
|
60
|
+
* @param options - Optional configuration for this operation.
|
|
61
|
+
* @returns The schema built from the provided SDL document.
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* // Build a schema from SDL source using the default options.
|
|
65
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
66
|
+
*
|
|
67
|
+
* const schema = buildSchema('type Query { hello: String }');
|
|
68
|
+
*
|
|
69
|
+
* schema.getQueryType().name; // => 'Query'
|
|
70
|
+
* ```
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* // This variant enables parser options and omits source locations.
|
|
74
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
75
|
+
*
|
|
76
|
+
* const schema = buildSchema(
|
|
77
|
+
* 'directive @tag on FIELD_DEFINITION\n' +
|
|
78
|
+
* 'directive @compose @tag on FIELD_DEFINITION',
|
|
79
|
+
* {
|
|
80
|
+
* experimentalDirectivesOnDirectiveDefinitions: true,
|
|
81
|
+
* noLocation: true,
|
|
82
|
+
* },
|
|
83
|
+
* );
|
|
84
|
+
*
|
|
85
|
+
* const directive = schema.getDirective('compose');
|
|
86
|
+
*
|
|
87
|
+
* directive.name; // => 'compose'
|
|
88
|
+
* directive.astNode.loc; // => undefined
|
|
89
|
+
* ```
|
|
31
90
|
*/
|
|
32
91
|
export declare function buildSchema(
|
|
33
92
|
source: string | Source,
|
|
@@ -20,15 +20,44 @@ var _validate = require('../validation/validate.js');
|
|
|
20
20
|
|
|
21
21
|
var _extendSchema = require('./extendSchema.js');
|
|
22
22
|
|
|
23
|
+
/** @category Schema Construction */
|
|
24
|
+
|
|
23
25
|
/**
|
|
24
|
-
*
|
|
25
|
-
* src/language/parser.js.
|
|
26
|
+
* Builds a GraphQLSchema from a parsed schema definition language document.
|
|
26
27
|
*
|
|
27
28
|
* If no schema definition is provided, then it will look for types named Query,
|
|
28
29
|
* Mutation and Subscription.
|
|
29
30
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
31
|
+
* The resulting schema has no resolver functions, so execution will use the
|
|
32
|
+
* default field resolver.
|
|
33
|
+
* @param documentAST - The parsed GraphQL document AST.
|
|
34
|
+
* @param options - Optional configuration for this operation.
|
|
35
|
+
* @returns The schema built from the provided SDL document.
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* // Build a schema from a valid parsed SDL document.
|
|
39
|
+
* import { parse } from 'graphql/language';
|
|
40
|
+
* import { buildASTSchema } from 'graphql/utilities';
|
|
41
|
+
*
|
|
42
|
+
* const document = parse('type Query { hello: String }');
|
|
43
|
+
* const schema = buildASTSchema(document);
|
|
44
|
+
*
|
|
45
|
+
* schema.getQueryType().name; // => 'Query'
|
|
46
|
+
* ```
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* // This variant uses validation options when the SDL references unknown types.
|
|
50
|
+
* import { parse } from 'graphql/language';
|
|
51
|
+
* import { buildASTSchema } from 'graphql/utilities';
|
|
52
|
+
*
|
|
53
|
+
* const document = parse('type Query { broken: MissingType }');
|
|
54
|
+
*
|
|
55
|
+
* buildASTSchema(document); // throws an error
|
|
56
|
+
* buildASTSchema(document, {
|
|
57
|
+
* assumeValid: true,
|
|
58
|
+
* assumeValidSDL: true,
|
|
59
|
+
* }); // does not throw
|
|
60
|
+
* ```
|
|
32
61
|
*/
|
|
33
62
|
function buildASTSchema(documentAST, options) {
|
|
34
63
|
(documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT) ||
|
|
@@ -93,8 +122,38 @@ function buildASTSchema(documentAST, options) {
|
|
|
93
122
|
return new _schema.GraphQLSchema({ ...config, directives });
|
|
94
123
|
}
|
|
95
124
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
125
|
+
* Builds a GraphQLSchema directly from a schema definition language source.
|
|
126
|
+
* @param source - The GraphQL source text or source object.
|
|
127
|
+
* @param options - Optional configuration for this operation.
|
|
128
|
+
* @returns The schema built from the provided SDL document.
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* // Build a schema from SDL source using the default options.
|
|
132
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
133
|
+
*
|
|
134
|
+
* const schema = buildSchema('type Query { hello: String }');
|
|
135
|
+
*
|
|
136
|
+
* schema.getQueryType().name; // => 'Query'
|
|
137
|
+
* ```
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* // This variant enables parser options and omits source locations.
|
|
141
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
142
|
+
*
|
|
143
|
+
* const schema = buildSchema(
|
|
144
|
+
* 'directive @tag on FIELD_DEFINITION\n' +
|
|
145
|
+
* 'directive @compose @tag on FIELD_DEFINITION',
|
|
146
|
+
* {
|
|
147
|
+
* experimentalDirectivesOnDirectiveDefinitions: true,
|
|
148
|
+
* noLocation: true,
|
|
149
|
+
* },
|
|
150
|
+
* );
|
|
151
|
+
*
|
|
152
|
+
* const directive = schema.getDirective('compose');
|
|
153
|
+
*
|
|
154
|
+
* directive.name; // => 'compose'
|
|
155
|
+
* directive.astNode.loc; // => undefined
|
|
156
|
+
* ```
|
|
98
157
|
*/
|
|
99
158
|
|
|
100
159
|
function buildSchema(source, options) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Schema Construction */
|
|
1
2
|
import { devAssert } from '../jsutils/devAssert.mjs';
|
|
2
3
|
import { Kind } from '../language/kinds.mjs';
|
|
3
4
|
import { parse } from '../language/parser.mjs';
|
|
@@ -5,16 +6,44 @@ import { specifiedDirectives } from '../type/directives.mjs';
|
|
|
5
6
|
import { GraphQLSchema } from '../type/schema.mjs';
|
|
6
7
|
import { assertValidSDL } from '../validation/validate.mjs';
|
|
7
8
|
import { extendSchemaImpl } from './extendSchema.mjs';
|
|
9
|
+
/** Options used when building a schema from SDL or a parsed SDL document. */
|
|
8
10
|
|
|
9
11
|
/**
|
|
10
|
-
*
|
|
11
|
-
* src/language/parser.js.
|
|
12
|
+
* Builds a GraphQLSchema from a parsed schema definition language document.
|
|
12
13
|
*
|
|
13
14
|
* If no schema definition is provided, then it will look for types named Query,
|
|
14
15
|
* Mutation and Subscription.
|
|
15
16
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
17
|
+
* The resulting schema has no resolver functions, so execution will use the
|
|
18
|
+
* default field resolver.
|
|
19
|
+
* @param documentAST - The parsed GraphQL document AST.
|
|
20
|
+
* @param options - Optional configuration for this operation.
|
|
21
|
+
* @returns The schema built from the provided SDL document.
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* // Build a schema from a valid parsed SDL document.
|
|
25
|
+
* import { parse } from 'graphql/language';
|
|
26
|
+
* import { buildASTSchema } from 'graphql/utilities';
|
|
27
|
+
*
|
|
28
|
+
* const document = parse('type Query { hello: String }');
|
|
29
|
+
* const schema = buildASTSchema(document);
|
|
30
|
+
*
|
|
31
|
+
* schema.getQueryType().name; // => 'Query'
|
|
32
|
+
* ```
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* // This variant uses validation options when the SDL references unknown types.
|
|
36
|
+
* import { parse } from 'graphql/language';
|
|
37
|
+
* import { buildASTSchema } from 'graphql/utilities';
|
|
38
|
+
*
|
|
39
|
+
* const document = parse('type Query { broken: MissingType }');
|
|
40
|
+
*
|
|
41
|
+
* buildASTSchema(document); // throws an error
|
|
42
|
+
* buildASTSchema(document, {
|
|
43
|
+
* assumeValid: true,
|
|
44
|
+
* assumeValidSDL: true,
|
|
45
|
+
* }); // does not throw
|
|
46
|
+
* ```
|
|
18
47
|
*/
|
|
19
48
|
export function buildASTSchema(documentAST, options) {
|
|
20
49
|
(documentAST != null && documentAST.kind === Kind.DOCUMENT) ||
|
|
@@ -75,8 +104,38 @@ export function buildASTSchema(documentAST, options) {
|
|
|
75
104
|
return new GraphQLSchema({ ...config, directives });
|
|
76
105
|
}
|
|
77
106
|
/**
|
|
78
|
-
*
|
|
79
|
-
*
|
|
107
|
+
* Builds a GraphQLSchema directly from a schema definition language source.
|
|
108
|
+
* @param source - The GraphQL source text or source object.
|
|
109
|
+
* @param options - Optional configuration for this operation.
|
|
110
|
+
* @returns The schema built from the provided SDL document.
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* // Build a schema from SDL source using the default options.
|
|
114
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
115
|
+
*
|
|
116
|
+
* const schema = buildSchema('type Query { hello: String }');
|
|
117
|
+
*
|
|
118
|
+
* schema.getQueryType().name; // => 'Query'
|
|
119
|
+
* ```
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* // This variant enables parser options and omits source locations.
|
|
123
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
124
|
+
*
|
|
125
|
+
* const schema = buildSchema(
|
|
126
|
+
* 'directive @tag on FIELD_DEFINITION\n' +
|
|
127
|
+
* 'directive @compose @tag on FIELD_DEFINITION',
|
|
128
|
+
* {
|
|
129
|
+
* experimentalDirectivesOnDirectiveDefinitions: true,
|
|
130
|
+
* noLocation: true,
|
|
131
|
+
* },
|
|
132
|
+
* );
|
|
133
|
+
*
|
|
134
|
+
* const directive = schema.getDirective('compose');
|
|
135
|
+
*
|
|
136
|
+
* directive.name; // => 'compose'
|
|
137
|
+
* directive.astNode.loc; // => undefined
|
|
138
|
+
* ```
|
|
80
139
|
*/
|
|
81
140
|
|
|
82
141
|
export function buildSchema(source, options) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Introspection */
|
|
1
2
|
import type { GraphQLSchemaValidationOptions } from '../type/schema';
|
|
2
3
|
import { GraphQLSchema } from '../type/schema';
|
|
3
4
|
import type { IntrospectionQuery } from './getIntrospectionQuery';
|
|
@@ -12,6 +13,20 @@ import type { IntrospectionQuery } from './getIntrospectionQuery';
|
|
|
12
13
|
*
|
|
13
14
|
* This function expects a complete introspection result. Don't forget to check
|
|
14
15
|
* the "errors" field of a server response before calling this function.
|
|
16
|
+
* @param introspection - Introspection result data to build from.
|
|
17
|
+
* @param options - Optional configuration for this operation.
|
|
18
|
+
* @returns The client schema represented by the introspection result.
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { buildClientSchema, introspectionFromSchema, buildSchema } from 'graphql/utilities';
|
|
22
|
+
*
|
|
23
|
+
* const schema = buildSchema('type Query { hello: String }');
|
|
24
|
+
* const clientSchema = buildClientSchema(introspectionFromSchema(schema), {
|
|
25
|
+
* assumeValid: true,
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* clientSchema.getQueryType().name; // => 'Query'
|
|
29
|
+
* ```
|
|
15
30
|
*/
|
|
16
31
|
export declare function buildClientSchema(
|
|
17
32
|
introspection: IntrospectionQuery,
|
|
@@ -27,6 +27,8 @@ var _schema = require('../type/schema.js');
|
|
|
27
27
|
|
|
28
28
|
var _valueFromAST = require('./valueFromAST.js');
|
|
29
29
|
|
|
30
|
+
/** @category Introspection */
|
|
31
|
+
|
|
30
32
|
/**
|
|
31
33
|
* Build a GraphQLSchema for use by client tools.
|
|
32
34
|
*
|
|
@@ -38,6 +40,20 @@ var _valueFromAST = require('./valueFromAST.js');
|
|
|
38
40
|
*
|
|
39
41
|
* This function expects a complete introspection result. Don't forget to check
|
|
40
42
|
* the "errors" field of a server response before calling this function.
|
|
43
|
+
* @param introspection - Introspection result data to build from.
|
|
44
|
+
* @param options - Optional configuration for this operation.
|
|
45
|
+
* @returns The client schema represented by the introspection result.
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* import { buildClientSchema, introspectionFromSchema, buildSchema } from 'graphql/utilities';
|
|
49
|
+
*
|
|
50
|
+
* const schema = buildSchema('type Query { hello: String }');
|
|
51
|
+
* const clientSchema = buildClientSchema(introspectionFromSchema(schema), {
|
|
52
|
+
* assumeValid: true,
|
|
53
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* clientSchema.getQueryType().name; // => 'Query'
|
|
56
|
+
* ```
|
|
41
57
|
*/
|
|
42
58
|
function buildClientSchema(introspection, options) {
|
|
43
59
|
((0, _isObjectLike.isObjectLike)(introspection) &&
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Introspection */
|
|
1
2
|
import { devAssert } from '../jsutils/devAssert.mjs';
|
|
2
3
|
import { inspect } from '../jsutils/inspect.mjs';
|
|
3
4
|
import { isObjectLike } from '../jsutils/isObjectLike.mjs';
|
|
@@ -34,6 +35,20 @@ import { valueFromAST } from './valueFromAST.mjs';
|
|
|
34
35
|
*
|
|
35
36
|
* This function expects a complete introspection result. Don't forget to check
|
|
36
37
|
* the "errors" field of a server response before calling this function.
|
|
38
|
+
* @param introspection - Introspection result data to build from.
|
|
39
|
+
* @param options - Optional configuration for this operation.
|
|
40
|
+
* @returns The client schema represented by the introspection result.
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* import { buildClientSchema, introspectionFromSchema, buildSchema } from 'graphql/utilities';
|
|
44
|
+
*
|
|
45
|
+
* const schema = buildSchema('type Query { hello: String }');
|
|
46
|
+
* const clientSchema = buildClientSchema(introspectionFromSchema(schema), {
|
|
47
|
+
* assumeValid: true,
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* clientSchema.getQueryType().name; // => 'Query'
|
|
51
|
+
* ```
|
|
37
52
|
*/
|
|
38
53
|
|
|
39
54
|
export function buildClientSchema(introspection, options) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import { GraphQLError } from '../error/GraphQLError';
|
|
2
3
|
import type { GraphQLInputType } from '../type/definition';
|
|
3
4
|
declare type OnErrorCB = (
|
|
@@ -7,6 +8,51 @@ declare type OnErrorCB = (
|
|
|
7
8
|
) => void;
|
|
8
9
|
/**
|
|
9
10
|
* Coerces a JavaScript value given a GraphQL Input Type.
|
|
11
|
+
* @param inputValue - JavaScript value to coerce.
|
|
12
|
+
* @param type - GraphQL input type to coerce the value against.
|
|
13
|
+
* @param onError - Callback invoked for each coercion error.
|
|
14
|
+
* @returns Coerced value, or undefined if coercion failed and errors were reported.
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* // Coerce runtime input values and throw on invalid input by default.
|
|
18
|
+
* import {
|
|
19
|
+
* GraphQLInputObjectType,
|
|
20
|
+
* GraphQLInt,
|
|
21
|
+
* GraphQLList,
|
|
22
|
+
* GraphQLNonNull,
|
|
23
|
+
* GraphQLString,
|
|
24
|
+
* } from 'graphql/type';
|
|
25
|
+
* import { coerceInputValue } from 'graphql/utilities';
|
|
26
|
+
*
|
|
27
|
+
* const ReviewInput = new GraphQLInputObjectType({
|
|
28
|
+
* name: 'ReviewInput',
|
|
29
|
+
* fields: {
|
|
30
|
+
* stars: { type: new GraphQLNonNull(GraphQLInt) },
|
|
31
|
+
* tags: { type: new GraphQLList(GraphQLString) },
|
|
32
|
+
* },
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* coerceInputValue({ stars: '5', tags: ['featured'] }, ReviewInput); // => { stars: 5, tags: ['featured'] }
|
|
36
|
+
* coerceInputValue({ stars: 'bad' }, ReviewInput); // throws an error
|
|
37
|
+
* ```
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* // This variant collects coercion errors with a custom onError callback.
|
|
41
|
+
* import { GraphQLInt, GraphQLNonNull } from 'graphql/type';
|
|
42
|
+
* import { coerceInputValue } from 'graphql/utilities';
|
|
43
|
+
*
|
|
44
|
+
* const errors = [];
|
|
45
|
+
* const value = coerceInputValue(
|
|
46
|
+
* null,
|
|
47
|
+
* new GraphQLNonNull(GraphQLInt),
|
|
48
|
+
* (path, invalidValue, error) => {
|
|
49
|
+
* errors.push({ path, invalidValue, message: error.message });
|
|
50
|
+
* },
|
|
51
|
+
* );
|
|
52
|
+
*
|
|
53
|
+
* value; // => undefined
|
|
54
|
+
* errors; // => [ { path: [], invalidValue: null, message: 'Expected non-nullable type "Int!" not to be null.' } ]
|
|
55
|
+
* ```
|
|
10
56
|
*/
|
|
11
57
|
export declare function coerceInputValue(
|
|
12
58
|
inputValue: unknown,
|
|
@@ -25,8 +25,55 @@ var _GraphQLError = require('../error/GraphQLError.js');
|
|
|
25
25
|
|
|
26
26
|
var _definition = require('../type/definition.js');
|
|
27
27
|
|
|
28
|
+
/** @category Values */
|
|
29
|
+
|
|
28
30
|
/**
|
|
29
31
|
* Coerces a JavaScript value given a GraphQL Input Type.
|
|
32
|
+
* @param inputValue - JavaScript value to coerce.
|
|
33
|
+
* @param type - GraphQL input type to coerce the value against.
|
|
34
|
+
* @param onError - Callback invoked for each coercion error.
|
|
35
|
+
* @returns Coerced value, or undefined if coercion failed and errors were reported.
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* // Coerce runtime input values and throw on invalid input by default.
|
|
39
|
+
* import {
|
|
40
|
+
* GraphQLInputObjectType,
|
|
41
|
+
* GraphQLInt,
|
|
42
|
+
* GraphQLList,
|
|
43
|
+
* GraphQLNonNull,
|
|
44
|
+
* GraphQLString,
|
|
45
|
+
* } from 'graphql/type';
|
|
46
|
+
* import { coerceInputValue } from 'graphql/utilities';
|
|
47
|
+
*
|
|
48
|
+
* const ReviewInput = new GraphQLInputObjectType({
|
|
49
|
+
* name: 'ReviewInput',
|
|
50
|
+
* fields: {
|
|
51
|
+
* stars: { type: new GraphQLNonNull(GraphQLInt) },
|
|
52
|
+
* tags: { type: new GraphQLList(GraphQLString) },
|
|
53
|
+
* },
|
|
54
|
+
* });
|
|
55
|
+
*
|
|
56
|
+
* coerceInputValue({ stars: '5', tags: ['featured'] }, ReviewInput); // => { stars: 5, tags: ['featured'] }
|
|
57
|
+
* coerceInputValue({ stars: 'bad' }, ReviewInput); // throws an error
|
|
58
|
+
* ```
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* // This variant collects coercion errors with a custom onError callback.
|
|
62
|
+
* import { GraphQLInt, GraphQLNonNull } from 'graphql/type';
|
|
63
|
+
* import { coerceInputValue } from 'graphql/utilities';
|
|
64
|
+
*
|
|
65
|
+
* const errors = [];
|
|
66
|
+
* const value = coerceInputValue(
|
|
67
|
+
* null,
|
|
68
|
+
* new GraphQLNonNull(GraphQLInt),
|
|
69
|
+
* (path, invalidValue, error) => {
|
|
70
|
+
* errors.push({ path, invalidValue, message: error.message });
|
|
71
|
+
* },
|
|
72
|
+
* );
|
|
73
|
+
*
|
|
74
|
+
* value; // => undefined
|
|
75
|
+
* errors; // => [ { path: [], invalidValue: null, message: 'Expected non-nullable type "Int!" not to be null.' } ]
|
|
76
|
+
* ```
|
|
30
77
|
*/
|
|
31
78
|
function coerceInputValue(inputValue, type, onError = defaultOnError) {
|
|
32
79
|
return coerceInputValueImpl(inputValue, type, onError, undefined);
|