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,7 +1,24 @@
|
|
|
1
|
+
/** @category Type Comparisons */
|
|
1
2
|
import type { GraphQLCompositeType, GraphQLType } from '../type/definition';
|
|
2
3
|
import type { GraphQLSchema } from '../type/schema';
|
|
3
4
|
/**
|
|
4
5
|
* Provided two types, return true if the types are equal (invariant).
|
|
6
|
+
* @param typeA - The first GraphQL type to compare.
|
|
7
|
+
* @param typeB - The second GraphQL type to compare.
|
|
8
|
+
* @returns True when both types are equal.
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import {
|
|
12
|
+
* GraphQLList,
|
|
13
|
+
* GraphQLNonNull,
|
|
14
|
+
* GraphQLString,
|
|
15
|
+
* } from 'graphql/type';
|
|
16
|
+
* import { isEqualType } from 'graphql/utilities';
|
|
17
|
+
*
|
|
18
|
+
* isEqualType(GraphQLString, GraphQLString); // => true
|
|
19
|
+
* isEqualType(new GraphQLList(GraphQLString), new GraphQLList(GraphQLString)); // => true
|
|
20
|
+
* isEqualType(new GraphQLNonNull(GraphQLString), GraphQLString); // => false
|
|
21
|
+
* ```
|
|
5
22
|
*/
|
|
6
23
|
export declare function isEqualType(
|
|
7
24
|
typeA: GraphQLType,
|
|
@@ -10,6 +27,40 @@ export declare function isEqualType(
|
|
|
10
27
|
/**
|
|
11
28
|
* Provided a type and a super type, return true if the first type is either
|
|
12
29
|
* equal or a subset of the second super type (covariant).
|
|
30
|
+
* @param schema - GraphQL schema to use.
|
|
31
|
+
* @param maybeSubType - The possible subtype to compare.
|
|
32
|
+
* @param superType - The possible supertype to compare.
|
|
33
|
+
* @returns True when `maybeSubType` is equal to or a subtype of `superType`.
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
37
|
+
* import {
|
|
38
|
+
* GraphQLNonNull,
|
|
39
|
+
* assertInterfaceType,
|
|
40
|
+
* assertObjectType,
|
|
41
|
+
* } from 'graphql/type';
|
|
42
|
+
* import { isTypeSubTypeOf } from 'graphql/utilities';
|
|
43
|
+
*
|
|
44
|
+
* const schema = buildSchema(`
|
|
45
|
+
* interface Node {
|
|
46
|
+
* id: ID!
|
|
47
|
+
* }
|
|
48
|
+
*
|
|
49
|
+
* type User implements Node {
|
|
50
|
+
* id: ID!
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* type Query {
|
|
54
|
+
* node: Node
|
|
55
|
+
* }
|
|
56
|
+
* `);
|
|
57
|
+
* const Node = assertInterfaceType(schema.getType('Node'));
|
|
58
|
+
* const User = assertObjectType(schema.getType('User'));
|
|
59
|
+
*
|
|
60
|
+
* isTypeSubTypeOf(schema, User, Node); // => true
|
|
61
|
+
* isTypeSubTypeOf(schema, new GraphQLNonNull(User), Node); // => true
|
|
62
|
+
* isTypeSubTypeOf(schema, Node, User); // => false
|
|
63
|
+
* ```
|
|
13
64
|
*/
|
|
14
65
|
export declare function isTypeSubTypeOf(
|
|
15
66
|
schema: GraphQLSchema,
|
|
@@ -24,6 +75,39 @@ export declare function isTypeSubTypeOf(
|
|
|
24
75
|
* be visited in a context of another type.
|
|
25
76
|
*
|
|
26
77
|
* This function is commutative.
|
|
78
|
+
* @param schema - GraphQL schema to use.
|
|
79
|
+
* @param typeA - The first GraphQL type to compare.
|
|
80
|
+
* @param typeB - The second GraphQL type to compare.
|
|
81
|
+
* @returns True when the two composite types can apply to at least one common object type.
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
85
|
+
* import { assertObjectType, assertUnionType } from 'graphql/type';
|
|
86
|
+
* import { doTypesOverlap } from 'graphql/utilities';
|
|
87
|
+
*
|
|
88
|
+
* const schema = buildSchema(`
|
|
89
|
+
* type Photo {
|
|
90
|
+
* url: String!
|
|
91
|
+
* }
|
|
92
|
+
*
|
|
93
|
+
* type Video {
|
|
94
|
+
* url: String!
|
|
95
|
+
* }
|
|
96
|
+
*
|
|
97
|
+
* union Media = Photo | Video
|
|
98
|
+
* union StillImage = Photo
|
|
99
|
+
*
|
|
100
|
+
* type Query {
|
|
101
|
+
* media: [Media]
|
|
102
|
+
* }
|
|
103
|
+
* `);
|
|
104
|
+
* const Media = assertUnionType(schema.getType('Media'));
|
|
105
|
+
* const StillImage = assertUnionType(schema.getType('StillImage'));
|
|
106
|
+
* const Video = assertObjectType(schema.getType('Video'));
|
|
107
|
+
*
|
|
108
|
+
* doTypesOverlap(schema, Media, StillImage); // => true
|
|
109
|
+
* doTypesOverlap(schema, StillImage, Video); // => false
|
|
110
|
+
* ```
|
|
27
111
|
*/
|
|
28
112
|
export declare function doTypesOverlap(
|
|
29
113
|
schema: GraphQLSchema,
|
|
@@ -9,8 +9,26 @@ exports.isTypeSubTypeOf = isTypeSubTypeOf;
|
|
|
9
9
|
|
|
10
10
|
var _definition = require('../type/definition.js');
|
|
11
11
|
|
|
12
|
+
/** @category Type Comparisons */
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* Provided two types, return true if the types are equal (invariant).
|
|
16
|
+
* @param typeA - The first GraphQL type to compare.
|
|
17
|
+
* @param typeB - The second GraphQL type to compare.
|
|
18
|
+
* @returns True when both types are equal.
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import {
|
|
22
|
+
* GraphQLList,
|
|
23
|
+
* GraphQLNonNull,
|
|
24
|
+
* GraphQLString,
|
|
25
|
+
* } from 'graphql/type';
|
|
26
|
+
* import { isEqualType } from 'graphql/utilities';
|
|
27
|
+
*
|
|
28
|
+
* isEqualType(GraphQLString, GraphQLString); // => true
|
|
29
|
+
* isEqualType(new GraphQLList(GraphQLString), new GraphQLList(GraphQLString)); // => true
|
|
30
|
+
* isEqualType(new GraphQLNonNull(GraphQLString), GraphQLString); // => false
|
|
31
|
+
* ```
|
|
14
32
|
*/
|
|
15
33
|
function isEqualType(typeA, typeB) {
|
|
16
34
|
// Equivalent types are equal.
|
|
@@ -37,6 +55,40 @@ function isEqualType(typeA, typeB) {
|
|
|
37
55
|
/**
|
|
38
56
|
* Provided a type and a super type, return true if the first type is either
|
|
39
57
|
* equal or a subset of the second super type (covariant).
|
|
58
|
+
* @param schema - GraphQL schema to use.
|
|
59
|
+
* @param maybeSubType - The possible subtype to compare.
|
|
60
|
+
* @param superType - The possible supertype to compare.
|
|
61
|
+
* @returns True when `maybeSubType` is equal to or a subtype of `superType`.
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
65
|
+
* import {
|
|
66
|
+
* GraphQLNonNull,
|
|
67
|
+
* assertInterfaceType,
|
|
68
|
+
* assertObjectType,
|
|
69
|
+
* } from 'graphql/type';
|
|
70
|
+
* import { isTypeSubTypeOf } from 'graphql/utilities';
|
|
71
|
+
*
|
|
72
|
+
* const schema = buildSchema(`
|
|
73
|
+
* interface Node {
|
|
74
|
+
* id: ID!
|
|
75
|
+
* }
|
|
76
|
+
*
|
|
77
|
+
* type User implements Node {
|
|
78
|
+
* id: ID!
|
|
79
|
+
* }
|
|
80
|
+
*
|
|
81
|
+
* type Query {
|
|
82
|
+
* node: Node
|
|
83
|
+
* }
|
|
84
|
+
* `);
|
|
85
|
+
* const Node = assertInterfaceType(schema.getType('Node'));
|
|
86
|
+
* const User = assertObjectType(schema.getType('User'));
|
|
87
|
+
*
|
|
88
|
+
* isTypeSubTypeOf(schema, User, Node); // => true
|
|
89
|
+
* isTypeSubTypeOf(schema, new GraphQLNonNull(User), Node); // => true
|
|
90
|
+
* isTypeSubTypeOf(schema, Node, User); // => false
|
|
91
|
+
* ```
|
|
40
92
|
*/
|
|
41
93
|
|
|
42
94
|
function isTypeSubTypeOf(schema, maybeSubType, superType) {
|
|
@@ -87,6 +139,39 @@ function isTypeSubTypeOf(schema, maybeSubType, superType) {
|
|
|
87
139
|
* be visited in a context of another type.
|
|
88
140
|
*
|
|
89
141
|
* This function is commutative.
|
|
142
|
+
* @param schema - GraphQL schema to use.
|
|
143
|
+
* @param typeA - The first GraphQL type to compare.
|
|
144
|
+
* @param typeB - The second GraphQL type to compare.
|
|
145
|
+
* @returns True when the two composite types can apply to at least one common object type.
|
|
146
|
+
* @example
|
|
147
|
+
* ```ts
|
|
148
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
149
|
+
* import { assertObjectType, assertUnionType } from 'graphql/type';
|
|
150
|
+
* import { doTypesOverlap } from 'graphql/utilities';
|
|
151
|
+
*
|
|
152
|
+
* const schema = buildSchema(`
|
|
153
|
+
* type Photo {
|
|
154
|
+
* url: String!
|
|
155
|
+
* }
|
|
156
|
+
*
|
|
157
|
+
* type Video {
|
|
158
|
+
* url: String!
|
|
159
|
+
* }
|
|
160
|
+
*
|
|
161
|
+
* union Media = Photo | Video
|
|
162
|
+
* union StillImage = Photo
|
|
163
|
+
*
|
|
164
|
+
* type Query {
|
|
165
|
+
* media: [Media]
|
|
166
|
+
* }
|
|
167
|
+
* `);
|
|
168
|
+
* const Media = assertUnionType(schema.getType('Media'));
|
|
169
|
+
* const StillImage = assertUnionType(schema.getType('StillImage'));
|
|
170
|
+
* const Video = assertObjectType(schema.getType('Video'));
|
|
171
|
+
*
|
|
172
|
+
* doTypesOverlap(schema, Media, StillImage); // => true
|
|
173
|
+
* doTypesOverlap(schema, StillImage, Video); // => false
|
|
174
|
+
* ```
|
|
90
175
|
*/
|
|
91
176
|
|
|
92
177
|
function doTypesOverlap(schema, typeA, typeB) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Type Comparisons */
|
|
1
2
|
import {
|
|
2
3
|
isAbstractType,
|
|
3
4
|
isInterfaceType,
|
|
@@ -8,6 +9,22 @@ import {
|
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Provided two types, return true if the types are equal (invariant).
|
|
12
|
+
* @param typeA - The first GraphQL type to compare.
|
|
13
|
+
* @param typeB - The second GraphQL type to compare.
|
|
14
|
+
* @returns True when both types are equal.
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import {
|
|
18
|
+
* GraphQLList,
|
|
19
|
+
* GraphQLNonNull,
|
|
20
|
+
* GraphQLString,
|
|
21
|
+
* } from 'graphql/type';
|
|
22
|
+
* import { isEqualType } from 'graphql/utilities';
|
|
23
|
+
*
|
|
24
|
+
* isEqualType(GraphQLString, GraphQLString); // => true
|
|
25
|
+
* isEqualType(new GraphQLList(GraphQLString), new GraphQLList(GraphQLString)); // => true
|
|
26
|
+
* isEqualType(new GraphQLNonNull(GraphQLString), GraphQLString); // => false
|
|
27
|
+
* ```
|
|
11
28
|
*/
|
|
12
29
|
export function isEqualType(typeA, typeB) {
|
|
13
30
|
// Equivalent types are equal.
|
|
@@ -28,6 +45,40 @@ export function isEqualType(typeA, typeB) {
|
|
|
28
45
|
/**
|
|
29
46
|
* Provided a type and a super type, return true if the first type is either
|
|
30
47
|
* equal or a subset of the second super type (covariant).
|
|
48
|
+
* @param schema - GraphQL schema to use.
|
|
49
|
+
* @param maybeSubType - The possible subtype to compare.
|
|
50
|
+
* @param superType - The possible supertype to compare.
|
|
51
|
+
* @returns True when `maybeSubType` is equal to or a subtype of `superType`.
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
55
|
+
* import {
|
|
56
|
+
* GraphQLNonNull,
|
|
57
|
+
* assertInterfaceType,
|
|
58
|
+
* assertObjectType,
|
|
59
|
+
* } from 'graphql/type';
|
|
60
|
+
* import { isTypeSubTypeOf } from 'graphql/utilities';
|
|
61
|
+
*
|
|
62
|
+
* const schema = buildSchema(`
|
|
63
|
+
* interface Node {
|
|
64
|
+
* id: ID!
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* type User implements Node {
|
|
68
|
+
* id: ID!
|
|
69
|
+
* }
|
|
70
|
+
*
|
|
71
|
+
* type Query {
|
|
72
|
+
* node: Node
|
|
73
|
+
* }
|
|
74
|
+
* `);
|
|
75
|
+
* const Node = assertInterfaceType(schema.getType('Node'));
|
|
76
|
+
* const User = assertObjectType(schema.getType('User'));
|
|
77
|
+
*
|
|
78
|
+
* isTypeSubTypeOf(schema, User, Node); // => true
|
|
79
|
+
* isTypeSubTypeOf(schema, new GraphQLNonNull(User), Node); // => true
|
|
80
|
+
* isTypeSubTypeOf(schema, Node, User); // => false
|
|
81
|
+
* ```
|
|
31
82
|
*/
|
|
32
83
|
|
|
33
84
|
export function isTypeSubTypeOf(schema, maybeSubType, superType) {
|
|
@@ -77,6 +128,39 @@ export function isTypeSubTypeOf(schema, maybeSubType, superType) {
|
|
|
77
128
|
* be visited in a context of another type.
|
|
78
129
|
*
|
|
79
130
|
* This function is commutative.
|
|
131
|
+
* @param schema - GraphQL schema to use.
|
|
132
|
+
* @param typeA - The first GraphQL type to compare.
|
|
133
|
+
* @param typeB - The second GraphQL type to compare.
|
|
134
|
+
* @returns True when the two composite types can apply to at least one common object type.
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* import { buildSchema } from 'graphql/utilities';
|
|
138
|
+
* import { assertObjectType, assertUnionType } from 'graphql/type';
|
|
139
|
+
* import { doTypesOverlap } from 'graphql/utilities';
|
|
140
|
+
*
|
|
141
|
+
* const schema = buildSchema(`
|
|
142
|
+
* type Photo {
|
|
143
|
+
* url: String!
|
|
144
|
+
* }
|
|
145
|
+
*
|
|
146
|
+
* type Video {
|
|
147
|
+
* url: String!
|
|
148
|
+
* }
|
|
149
|
+
*
|
|
150
|
+
* union Media = Photo | Video
|
|
151
|
+
* union StillImage = Photo
|
|
152
|
+
*
|
|
153
|
+
* type Query {
|
|
154
|
+
* media: [Media]
|
|
155
|
+
* }
|
|
156
|
+
* `);
|
|
157
|
+
* const Media = assertUnionType(schema.getType('Media'));
|
|
158
|
+
* const StillImage = assertUnionType(schema.getType('StillImage'));
|
|
159
|
+
* const Video = assertObjectType(schema.getType('Video'));
|
|
160
|
+
*
|
|
161
|
+
* doTypesOverlap(schema, Media, StillImage); // => true
|
|
162
|
+
* doTypesOverlap(schema, StillImage, Video); // => false
|
|
163
|
+
* ```
|
|
80
164
|
*/
|
|
81
165
|
|
|
82
166
|
export function doTypesOverlap(schema, typeA, typeB) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import type {
|
|
2
3
|
ListTypeNode,
|
|
3
4
|
NamedTypeNode,
|
|
@@ -13,19 +14,104 @@ import type { GraphQLSchema } from '../type/schema';
|
|
|
13
14
|
* AST node for `[User]`, a GraphQLList instance will be returned, containing
|
|
14
15
|
* the type called "User" found in the schema. If a type called "User" is not
|
|
15
16
|
* found in the schema, then undefined will be returned.
|
|
17
|
+
* @param schema - GraphQL schema to use.
|
|
18
|
+
* @param typeNode - The GraphQL type AST node to resolve.
|
|
19
|
+
* @returns The GraphQL type referenced by the AST node, or undefined if it cannot be resolved.
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* import { parseType } from 'graphql/language';
|
|
23
|
+
* import { buildSchema, typeFromAST } from 'graphql/utilities';
|
|
24
|
+
*
|
|
25
|
+
* const schema = buildSchema(`
|
|
26
|
+
* type Query {
|
|
27
|
+
* name: String
|
|
28
|
+
* }
|
|
29
|
+
* `);
|
|
30
|
+
*
|
|
31
|
+
* typeFromAST(schema, parseType('String'))?.toString(); // => 'String'
|
|
32
|
+
* typeFromAST(schema, parseType('Missing')); // => undefined
|
|
33
|
+
* ```
|
|
16
34
|
*/
|
|
17
35
|
export declare function typeFromAST(
|
|
18
36
|
schema: GraphQLSchema,
|
|
19
37
|
typeNode: NamedTypeNode,
|
|
20
38
|
): GraphQLNamedType | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Resolves a list type AST node against a schema.
|
|
41
|
+
* @param schema - GraphQL schema to use.
|
|
42
|
+
* @param typeNode - The list type AST node to resolve.
|
|
43
|
+
* @returns The GraphQL list type referenced by the AST node, or undefined if
|
|
44
|
+
* it cannot be resolved.
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { parseType } from 'graphql/language';
|
|
48
|
+
* import { buildSchema, typeFromAST } from 'graphql/utilities';
|
|
49
|
+
*
|
|
50
|
+
* const schema = buildSchema(`
|
|
51
|
+
* type Query {
|
|
52
|
+
* tags: [String]
|
|
53
|
+
* }
|
|
54
|
+
* `);
|
|
55
|
+
*
|
|
56
|
+
* typeFromAST(schema, parseType('[String]'))?.toString(); // => '[String]'
|
|
57
|
+
* typeFromAST(schema, parseType('[Missing]')); // => undefined
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
21
60
|
export declare function typeFromAST(
|
|
22
61
|
schema: GraphQLSchema,
|
|
23
62
|
typeNode: ListTypeNode,
|
|
24
63
|
): GraphQLList<any> | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Resolves a non-null type AST node against a schema.
|
|
66
|
+
* @param schema - GraphQL schema to use.
|
|
67
|
+
* @param typeNode - The non-null type AST node to resolve.
|
|
68
|
+
* @returns The GraphQL non-null type referenced by the AST node, or undefined
|
|
69
|
+
* if it cannot be resolved.
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* import { parseType } from 'graphql/language';
|
|
73
|
+
* import { buildSchema, typeFromAST } from 'graphql/utilities';
|
|
74
|
+
*
|
|
75
|
+
* const schema = buildSchema(`
|
|
76
|
+
* type Query {
|
|
77
|
+
* name: String!
|
|
78
|
+
* }
|
|
79
|
+
* `);
|
|
80
|
+
*
|
|
81
|
+
* typeFromAST(schema, parseType('String!'))?.toString(); // => 'String!'
|
|
82
|
+
* typeFromAST(schema, parseType('[String!]!'))?.toString(); // => '[String!]!'
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
25
85
|
export declare function typeFromAST(
|
|
26
86
|
schema: GraphQLSchema,
|
|
27
87
|
typeNode: NonNullTypeNode,
|
|
28
88
|
): GraphQLNonNull<any> | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* Resolves a type AST node against a schema.
|
|
91
|
+
* @param schema - GraphQL schema to use.
|
|
92
|
+
* @param typeNode - The GraphQL type AST node to resolve.
|
|
93
|
+
* @returns The GraphQL type referenced by the AST node, or undefined if it
|
|
94
|
+
* cannot be resolved.
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* import { parseType } from 'graphql/language';
|
|
98
|
+
* import { buildSchema, typeFromAST } from 'graphql/utilities';
|
|
99
|
+
*
|
|
100
|
+
* const schema = buildSchema(`
|
|
101
|
+
* type User {
|
|
102
|
+
* name: String
|
|
103
|
+
* }
|
|
104
|
+
*
|
|
105
|
+
* type Query {
|
|
106
|
+
* users: [User!]!
|
|
107
|
+
* }
|
|
108
|
+
* `);
|
|
109
|
+
*
|
|
110
|
+
* typeFromAST(schema, parseType('User'))?.toString(); // => 'User'
|
|
111
|
+
* typeFromAST(schema, parseType('[User!]!'))?.toString(); // => '[User!]!'
|
|
112
|
+
* typeFromAST(schema, parseType('Missing')); // => undefined
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
29
115
|
export declare function typeFromAST(
|
|
30
116
|
schema: GraphQLSchema,
|
|
31
117
|
typeNode: TypeNode,
|
package/utilities/typeFromAST.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import { Kind } from '../language/kinds.mjs';
|
|
2
3
|
import { GraphQLList, GraphQLNonNull } from '../type/definition.mjs';
|
|
4
|
+
|
|
5
|
+
/** @internal */
|
|
3
6
|
export function typeFromAST(schema, typeNode) {
|
|
4
7
|
switch (typeNode.kind) {
|
|
5
8
|
case Kind.LIST_TYPE: {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
/** @category Typed Documents */
|
|
1
2
|
import type { DocumentNode, ExecutableDefinitionNode } from '../language/ast';
|
|
2
3
|
/**
|
|
3
4
|
* Wrapper type that contains DocumentNode and types that can be deduced from it.
|
|
5
|
+
* @typeParam TResponseData - Typed GraphQL response data shape.
|
|
6
|
+
* @typeParam TRequestVariables - Typed GraphQL request variables shape.
|
|
4
7
|
*/
|
|
5
8
|
export interface TypedQueryDocumentNode<
|
|
6
9
|
TResponseData = {
|
|
@@ -10,6 +13,7 @@ export interface TypedQueryDocumentNode<
|
|
|
10
13
|
[key: string]: any;
|
|
11
14
|
},
|
|
12
15
|
> extends DocumentNode {
|
|
16
|
+
/** Top-level executable and type-system definitions in this document. */
|
|
13
17
|
readonly definitions: ReadonlyArray<ExecutableDefinitionNode>;
|
|
14
18
|
/**
|
|
15
19
|
* This type is used to ensure that the variables you pass in to the query are assignable to Variables
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import type { Maybe } from '../jsutils/Maybe';
|
|
2
3
|
import type { ObjMap } from '../jsutils/ObjMap';
|
|
3
4
|
import type { ValueNode } from '../language/ast';
|
|
@@ -20,7 +21,44 @@ import type { GraphQLInputType } from '../type/definition';
|
|
|
20
21
|
* | Int / Float | Number |
|
|
21
22
|
* | Enum Value | Unknown |
|
|
22
23
|
* | NullValue | null |
|
|
24
|
+
* @param valueNode - GraphQL value AST node to convert.
|
|
25
|
+
* @param type - The GraphQL type to inspect.
|
|
26
|
+
* @param variables - Optional runtime variable values keyed by variable name.
|
|
27
|
+
* @returns The coerced JavaScript value, or undefined if the AST value cannot be coerced to the type.
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* // Coerce literal values without variables.
|
|
31
|
+
* import { parseValue } from 'graphql/language';
|
|
32
|
+
* import {
|
|
33
|
+
* GraphQLInputObjectType,
|
|
34
|
+
* GraphQLInt,
|
|
35
|
+
* GraphQLList,
|
|
36
|
+
* GraphQLNonNull,
|
|
37
|
+
* GraphQLString,
|
|
38
|
+
* } from 'graphql/type';
|
|
39
|
+
* import { valueFromAST } from 'graphql/utilities';
|
|
23
40
|
*
|
|
41
|
+
* const ReviewInput = new GraphQLInputObjectType({
|
|
42
|
+
* name: 'ReviewInput',
|
|
43
|
+
* fields: {
|
|
44
|
+
* stars: { type: new GraphQLNonNull(GraphQLInt) },
|
|
45
|
+
* tags: { type: new GraphQLList(GraphQLString) },
|
|
46
|
+
* },
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* valueFromAST(parseValue('{ stars: 5, tags: ["featured"] }'), ReviewInput); // => { stars: 5, tags: ['featured'] }
|
|
50
|
+
* valueFromAST(parseValue('{ stars: "bad" }'), ReviewInput); // => undefined
|
|
51
|
+
* ```
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* // This variant resolves variable references from runtime values.
|
|
55
|
+
* import { parseValue } from 'graphql/language';
|
|
56
|
+
* import { GraphQLInt } from 'graphql/type';
|
|
57
|
+
* import { valueFromAST } from 'graphql/utilities';
|
|
58
|
+
*
|
|
59
|
+
* valueFromAST(parseValue('$stars'), GraphQLInt, { stars: 5 }); // => 5
|
|
60
|
+
* valueFromAST(parseValue('$stars'), GraphQLInt, {}); // => undefined
|
|
61
|
+
* ```
|
|
24
62
|
*/
|
|
25
63
|
export declare function valueFromAST(
|
|
26
64
|
valueNode: Maybe<ValueNode>,
|
|
@@ -15,6 +15,8 @@ var _kinds = require('../language/kinds.js');
|
|
|
15
15
|
|
|
16
16
|
var _definition = require('../type/definition.js');
|
|
17
17
|
|
|
18
|
+
/** @category Values */
|
|
19
|
+
|
|
18
20
|
/**
|
|
19
21
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
20
22
|
*
|
|
@@ -33,7 +35,44 @@ var _definition = require('../type/definition.js');
|
|
|
33
35
|
* | Int / Float | Number |
|
|
34
36
|
* | Enum Value | Unknown |
|
|
35
37
|
* | NullValue | null |
|
|
38
|
+
* @param valueNode - GraphQL value AST node to convert.
|
|
39
|
+
* @param type - The GraphQL type to inspect.
|
|
40
|
+
* @param variables - Optional runtime variable values keyed by variable name.
|
|
41
|
+
* @returns The coerced JavaScript value, or undefined if the AST value cannot be coerced to the type.
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* // Coerce literal values without variables.
|
|
45
|
+
* import { parseValue } from 'graphql/language';
|
|
46
|
+
* import {
|
|
47
|
+
* GraphQLInputObjectType,
|
|
48
|
+
* GraphQLInt,
|
|
49
|
+
* GraphQLList,
|
|
50
|
+
* GraphQLNonNull,
|
|
51
|
+
* GraphQLString,
|
|
52
|
+
* } from 'graphql/type';
|
|
53
|
+
* import { valueFromAST } from 'graphql/utilities';
|
|
54
|
+
*
|
|
55
|
+
* const ReviewInput = new GraphQLInputObjectType({
|
|
56
|
+
* name: 'ReviewInput',
|
|
57
|
+
* fields: {
|
|
58
|
+
* stars: { type: new GraphQLNonNull(GraphQLInt) },
|
|
59
|
+
* tags: { type: new GraphQLList(GraphQLString) },
|
|
60
|
+
* },
|
|
61
|
+
* });
|
|
62
|
+
*
|
|
63
|
+
* valueFromAST(parseValue('{ stars: 5, tags: ["featured"] }'), ReviewInput); // => { stars: 5, tags: ['featured'] }
|
|
64
|
+
* valueFromAST(parseValue('{ stars: "bad" }'), ReviewInput); // => undefined
|
|
65
|
+
* ```
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* // This variant resolves variable references from runtime values.
|
|
69
|
+
* import { parseValue } from 'graphql/language';
|
|
70
|
+
* import { GraphQLInt } from 'graphql/type';
|
|
71
|
+
* import { valueFromAST } from 'graphql/utilities';
|
|
36
72
|
*
|
|
73
|
+
* valueFromAST(parseValue('$stars'), GraphQLInt, { stars: 5 }); // => 5
|
|
74
|
+
* valueFromAST(parseValue('$stars'), GraphQLInt, {}); // => undefined
|
|
75
|
+
* ```
|
|
37
76
|
*/
|
|
38
77
|
function valueFromAST(valueNode, type, variables) {
|
|
39
78
|
if (!valueNode) {
|
|
@@ -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 { keyMap } from '../jsutils/keyMap.mjs';
|
|
@@ -26,7 +27,44 @@ import {
|
|
|
26
27
|
* | Int / Float | Number |
|
|
27
28
|
* | Enum Value | Unknown |
|
|
28
29
|
* | NullValue | null |
|
|
30
|
+
* @param valueNode - GraphQL value AST node to convert.
|
|
31
|
+
* @param type - The GraphQL type to inspect.
|
|
32
|
+
* @param variables - Optional runtime variable values keyed by variable name.
|
|
33
|
+
* @returns The coerced JavaScript value, or undefined if the AST value cannot be coerced to the type.
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* // Coerce literal values without variables.
|
|
37
|
+
* import { parseValue } from 'graphql/language';
|
|
38
|
+
* import {
|
|
39
|
+
* GraphQLInputObjectType,
|
|
40
|
+
* GraphQLInt,
|
|
41
|
+
* GraphQLList,
|
|
42
|
+
* GraphQLNonNull,
|
|
43
|
+
* GraphQLString,
|
|
44
|
+
* } from 'graphql/type';
|
|
45
|
+
* import { valueFromAST } from 'graphql/utilities';
|
|
29
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
|
+
* });
|
|
54
|
+
*
|
|
55
|
+
* valueFromAST(parseValue('{ stars: 5, tags: ["featured"] }'), ReviewInput); // => { stars: 5, tags: ['featured'] }
|
|
56
|
+
* valueFromAST(parseValue('{ stars: "bad" }'), ReviewInput); // => undefined
|
|
57
|
+
* ```
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* // This variant resolves variable references from runtime values.
|
|
61
|
+
* import { parseValue } from 'graphql/language';
|
|
62
|
+
* import { GraphQLInt } from 'graphql/type';
|
|
63
|
+
* import { valueFromAST } from 'graphql/utilities';
|
|
64
|
+
*
|
|
65
|
+
* valueFromAST(parseValue('$stars'), GraphQLInt, { stars: 5 }); // => 5
|
|
66
|
+
* valueFromAST(parseValue('$stars'), GraphQLInt, {}); // => undefined
|
|
67
|
+
* ```
|
|
30
68
|
*/
|
|
31
69
|
|
|
32
70
|
export function valueFromAST(valueNode, type, variables) {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
/** @category Values */
|
|
1
2
|
import type { Maybe } from '../jsutils/Maybe';
|
|
2
3
|
import type { ObjMap } from '../jsutils/ObjMap';
|
|
3
4
|
import type { ValueNode } from '../language/ast';
|
|
4
5
|
/**
|
|
5
6
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
8
|
+
* Because no GraphQL type is provided, the returned JavaScript value reflects
|
|
9
|
+
* the provided GraphQL value AST.
|
|
9
10
|
*
|
|
10
11
|
* | GraphQL Value | JavaScript Value |
|
|
11
12
|
* | -------------------- | ---------------- |
|
|
@@ -15,7 +16,19 @@ import type { ValueNode } from '../language/ast';
|
|
|
15
16
|
* | String / Enum | String |
|
|
16
17
|
* | Int / Float | Number |
|
|
17
18
|
* | Null | null |
|
|
19
|
+
* @param valueNode - GraphQL value AST node to convert.
|
|
20
|
+
* @param variables - Optional runtime variable values keyed by variable name.
|
|
21
|
+
* @returns JavaScript value represented by the GraphQL value AST.
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { parseValue } from 'graphql/language';
|
|
25
|
+
* import { valueFromASTUntyped } from 'graphql/utilities';
|
|
18
26
|
*
|
|
27
|
+
* const value = valueFromASTUntyped(parseValue('[1, 2, 3]'));
|
|
28
|
+
*
|
|
29
|
+
* value; // => [1, 2, 3]
|
|
30
|
+
* valueFromASTUntyped(parseValue('$name'), { name: 'Ada' }); // => 'Ada'
|
|
31
|
+
* ```
|
|
19
32
|
*/
|
|
20
33
|
export declare function valueFromASTUntyped(
|
|
21
34
|
valueNode: ValueNode,
|
|
@@ -9,11 +9,13 @@ var _keyValMap = require('../jsutils/keyValMap.js');
|
|
|
9
9
|
|
|
10
10
|
var _kinds = require('../language/kinds.js');
|
|
11
11
|
|
|
12
|
+
/** @category Values */
|
|
13
|
+
|
|
12
14
|
/**
|
|
13
15
|
* Produces a JavaScript value given a GraphQL Value AST.
|
|
14
16
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
+
* Because no GraphQL type is provided, the returned JavaScript value reflects
|
|
18
|
+
* the provided GraphQL value AST.
|
|
17
19
|
*
|
|
18
20
|
* | GraphQL Value | JavaScript Value |
|
|
19
21
|
* | -------------------- | ---------------- |
|
|
@@ -23,7 +25,19 @@ var _kinds = require('../language/kinds.js');
|
|
|
23
25
|
* | String / Enum | String |
|
|
24
26
|
* | Int / Float | Number |
|
|
25
27
|
* | Null | null |
|
|
28
|
+
* @param valueNode - GraphQL value AST node to convert.
|
|
29
|
+
* @param variables - Optional runtime variable values keyed by variable name.
|
|
30
|
+
* @returns JavaScript value represented by the GraphQL value AST.
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* import { parseValue } from 'graphql/language';
|
|
34
|
+
* import { valueFromASTUntyped } from 'graphql/utilities';
|
|
35
|
+
*
|
|
36
|
+
* const value = valueFromASTUntyped(parseValue('[1, 2, 3]'));
|
|
26
37
|
*
|
|
38
|
+
* value; // => [1, 2, 3]
|
|
39
|
+
* valueFromASTUntyped(parseValue('$name'), { name: 'Ada' }); // => 'Ada'
|
|
40
|
+
* ```
|
|
27
41
|
*/
|
|
28
42
|
function valueFromASTUntyped(valueNode, variables) {
|
|
29
43
|
switch (valueNode.kind) {
|