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
package/language/visitor.mjs
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
+
/** @category Visiting */
|
|
1
2
|
import { devAssert } from '../jsutils/devAssert.mjs';
|
|
2
3
|
import { inspect } from '../jsutils/inspect.mjs';
|
|
3
4
|
import { isNode, QueryDocumentKeys } from './ast.mjs';
|
|
4
5
|
import { Kind } from './kinds.mjs';
|
|
5
|
-
/**
|
|
6
|
-
* A visitor is provided to visit, it contains the collection of
|
|
7
|
-
* relevant functions to be called during the visitor's traversal.
|
|
8
|
-
*/
|
|
6
|
+
/** A visitor defines the callbacks called during AST traversal. */
|
|
9
7
|
|
|
8
|
+
/** A value that can be returned from a visitor function to stop traversal. */
|
|
10
9
|
export const BREAK = Object.freeze({});
|
|
11
10
|
/**
|
|
12
11
|
* visit() will walk through an AST using a depth-first traversal, calling
|
|
@@ -21,72 +20,94 @@ export const BREAK = Object.freeze({});
|
|
|
21
20
|
* When using visit() to edit an AST, the original AST will not be modified, and
|
|
22
21
|
* a new version of the AST with the changes applied will be returned from the
|
|
23
22
|
* visit function.
|
|
24
|
-
*
|
|
23
|
+
* @param root - The AST node at which to start traversal.
|
|
24
|
+
* @param visitor - The visitor or reducer functions to call while traversing.
|
|
25
|
+
* @param visitorKeys - Optional map of child keys to visit for each AST node kind.
|
|
26
|
+
* @returns The original AST, an edited AST, or a reduced value depending on the visitor.
|
|
27
|
+
* @typeParam N - The root AST node type returned when visiting without reducing.
|
|
28
|
+
* @example
|
|
25
29
|
* ```ts
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
30
|
+
* // Return values control traversal: undefined makes no change, false skips
|
|
31
|
+
* // a subtree, BREAK stops traversal, null removes a node, and any other
|
|
32
|
+
* // value replaces the current node.
|
|
33
|
+
* import { Kind, parse, print, visit } from 'graphql/language';
|
|
34
|
+
*
|
|
35
|
+
* const document = parse('{ hero { name } }');
|
|
36
|
+
* const editedAST = visit(document, {
|
|
37
|
+
* Field: (node) => {
|
|
38
|
+
* if (node.name.value === 'hero') {
|
|
39
|
+
* return {
|
|
40
|
+
* ...node,
|
|
41
|
+
* name: { kind: Kind.NAME, value: 'human' },
|
|
42
|
+
* };
|
|
43
|
+
* }
|
|
34
44
|
* },
|
|
35
|
-
* leave(node, key, parent, path, ancestors) {
|
|
36
|
-
* // @return
|
|
37
|
-
* // undefined: no action
|
|
38
|
-
* // false: no action
|
|
39
|
-
* // visitor.BREAK: stop visiting altogether
|
|
40
|
-
* // null: delete this node
|
|
41
|
-
* // any value: replace this node with the returned value
|
|
42
|
-
* }
|
|
43
45
|
* });
|
|
46
|
+
*
|
|
47
|
+
* print(editedAST); // => '{\n human {\n name\n }\n}'
|
|
44
48
|
* ```
|
|
49
|
+
* @example
|
|
50
|
+
* ```ts
|
|
51
|
+
* // A named visitor function runs when entering nodes of that kind.
|
|
52
|
+
* import { parse, visit } from 'graphql/language';
|
|
45
53
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* enter/leave visitors at a named key, leading to three permutations of the
|
|
49
|
-
* visitor API:
|
|
54
|
+
* const document = parse('{ hero { name } }');
|
|
55
|
+
* const fieldNames = [];
|
|
50
56
|
*
|
|
51
|
-
*
|
|
57
|
+
* visit(document, {
|
|
58
|
+
* Field: (node) => {
|
|
59
|
+
* fieldNames.push(node.name.value);
|
|
60
|
+
* },
|
|
61
|
+
* });
|
|
52
62
|
*
|
|
53
|
-
*
|
|
54
|
-
* visit(ast, {
|
|
55
|
-
* Kind(node) {
|
|
56
|
-
* // enter the "Kind" node
|
|
57
|
-
* }
|
|
58
|
-
* })
|
|
63
|
+
* fieldNames; // => ['hero', 'name']
|
|
59
64
|
* ```
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* // A named visitor object can provide separate enter and leave handlers for
|
|
68
|
+
* // nodes of that kind.
|
|
69
|
+
* import { parse, visit } from 'graphql/language';
|
|
60
70
|
*
|
|
61
|
-
*
|
|
71
|
+
* const document = parse('{ hero { name } }');
|
|
72
|
+
* const events = [];
|
|
62
73
|
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
+
* visit(document, {
|
|
75
|
+
* Field: {
|
|
76
|
+
* enter: (node) => {
|
|
77
|
+
* events.push(`enter:${node.name.value}`);
|
|
78
|
+
* },
|
|
79
|
+
* leave: (node) => {
|
|
80
|
+
* events.push(`leave:${node.name.value}`);
|
|
81
|
+
* },
|
|
82
|
+
* },
|
|
83
|
+
* });
|
|
84
|
+
*
|
|
85
|
+
* events; // => ['enter:hero', 'enter:name', 'leave:name', 'leave:hero']
|
|
74
86
|
* ```
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* // Generic enter and leave handlers run for every node.
|
|
90
|
+
* import { parse, visit } from 'graphql/language';
|
|
75
91
|
*
|
|
76
|
-
*
|
|
92
|
+
* const document = parse('{ hero { name } }');
|
|
93
|
+
* let enterCount = 0;
|
|
94
|
+
* let leaveCount = 0;
|
|
77
95
|
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
96
|
+
* visit(document, {
|
|
97
|
+
* enter: (node) => {
|
|
98
|
+
* enterCount += 1;
|
|
99
|
+
* },
|
|
100
|
+
* leave: (node) => {
|
|
101
|
+
* leaveCount += 1;
|
|
82
102
|
* },
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
103
|
+
* });
|
|
104
|
+
*
|
|
105
|
+
* enterCount; // => leaveCount
|
|
106
|
+
* enterCount > 0; // => true
|
|
87
107
|
* ```
|
|
88
108
|
*/
|
|
89
109
|
|
|
110
|
+
/** @internal */
|
|
90
111
|
export function visit(root, visitor, visitorKeys = QueryDocumentKeys) {
|
|
91
112
|
const enterLeaveMap = new Map();
|
|
92
113
|
|
|
@@ -246,6 +267,25 @@ export function visit(root, visitor, visitorKeys = QueryDocumentKeys) {
|
|
|
246
267
|
* parallel. Each visitor will be visited for each node before moving on.
|
|
247
268
|
*
|
|
248
269
|
* If a prior visitor edits a node, no following visitors will see that node.
|
|
270
|
+
* @param visitors - The visitors to merge into one parallel visitor.
|
|
271
|
+
* @returns A visitor that delegates traversal to each provided visitor.
|
|
272
|
+
* @example
|
|
273
|
+
* ```ts
|
|
274
|
+
* import { parse, visit, visitInParallel } from 'graphql/language';
|
|
275
|
+
*
|
|
276
|
+
* const document = parse('{ hero { name } }');
|
|
277
|
+
* const events = [];
|
|
278
|
+
*
|
|
279
|
+
* visit(
|
|
280
|
+
* document,
|
|
281
|
+
* visitInParallel([
|
|
282
|
+
* { Field: (node) => { events.push(`field:${node.name.value}`); } },
|
|
283
|
+
* { Name: (node) => { events.push(`name:${node.value}`); } },
|
|
284
|
+
* ]),
|
|
285
|
+
* );
|
|
286
|
+
*
|
|
287
|
+
* events; // => ['field:hero', 'name:hero', 'field:name', 'name:name']
|
|
288
|
+
* ```
|
|
249
289
|
*/
|
|
250
290
|
|
|
251
291
|
export function visitInParallel(visitors) {
|
|
@@ -322,6 +362,18 @@ export function visitInParallel(visitors) {
|
|
|
322
362
|
}
|
|
323
363
|
/**
|
|
324
364
|
* Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.
|
|
365
|
+
* @param visitor - The visitor object to inspect.
|
|
366
|
+
* @param kind - The AST node kind to resolve handlers for.
|
|
367
|
+
* @returns The enter and leave handlers that apply for the given node kind.
|
|
368
|
+
* @example
|
|
369
|
+
* ```ts
|
|
370
|
+
* import { Kind, getEnterLeaveForKind } from 'graphql/language';
|
|
371
|
+
*
|
|
372
|
+
* const handlers = getEnterLeaveForKind({ Field: () => {} }, Kind.FIELD);
|
|
373
|
+
*
|
|
374
|
+
* typeof handlers.enter; // => 'function'
|
|
375
|
+
* handlers.leave; // => undefined
|
|
376
|
+
* ```
|
|
325
377
|
*/
|
|
326
378
|
|
|
327
379
|
export function getEnterLeaveForKind(visitor, kind) {
|
|
@@ -345,8 +397,24 @@ export function getEnterLeaveForKind(visitor, kind) {
|
|
|
345
397
|
}
|
|
346
398
|
/**
|
|
347
399
|
* Given a visitor instance, if it is leaving or not, and a node kind, return
|
|
348
|
-
* the function the visitor runtime should call.
|
|
400
|
+
* the function the visitor runtime should call. This deprecated compatibility
|
|
401
|
+
* helper delegates to `getEnterLeaveForKind`; call `getEnterLeaveForKind`
|
|
402
|
+
* directly because getVisitFn will be removed in v17.
|
|
403
|
+
* @param visitor - The visitor object to inspect.
|
|
404
|
+
* @param kind - The AST node kind to resolve a handler for.
|
|
405
|
+
* @param isLeaving - Whether to resolve the leave handler instead of the enter handler.
|
|
406
|
+
* @returns The visit function that applies for the given node kind and traversal phase, if one exists.
|
|
407
|
+
* @example
|
|
408
|
+
* ```ts
|
|
409
|
+
* import { Kind, getVisitFn } from 'graphql/language';
|
|
349
410
|
*
|
|
411
|
+
* const enter = getVisitFn({ Field: () => {} }, Kind.FIELD, false);
|
|
412
|
+
* const leave = getVisitFn({ Field: () => {} }, Kind.FIELD, true);
|
|
413
|
+
*
|
|
414
|
+
* typeof enter; // => 'function'
|
|
415
|
+
* leave; // => undefined
|
|
416
|
+
* ```
|
|
417
|
+
* @category Visiting
|
|
350
418
|
* @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17
|
|
351
419
|
*/
|
|
352
420
|
|
package/package.json
CHANGED
package/subscription/index.d.ts
CHANGED
|
@@ -5,15 +5,21 @@
|
|
|
5
5
|
*
|
|
6
6
|
* For backwards compatibility, the `graphql/subscription` module
|
|
7
7
|
* currently re-exports the moved functions from the `graphql/execution`
|
|
8
|
-
* module. In
|
|
9
|
-
*
|
|
8
|
+
* module. In v17, the `graphql/subscription` module will be dropped entirely.
|
|
9
|
+
*
|
|
10
|
+
* These exports are also available from the root `graphql` package.
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
* @category Subscriptions
|
|
10
13
|
*/
|
|
11
14
|
import type { ExecutionArgs } from '../execution/execute';
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
16
|
+
* Deprecated legacy alias for ExecutionArgs retained by the subscription
|
|
17
|
+
* module. Use `ExecutionArgs` directly instead because SubscriptionArgs will be
|
|
18
|
+
* removed in v17.
|
|
14
19
|
*
|
|
15
20
|
* ExecutionArgs has been broadened to include all properties within SubscriptionArgs.
|
|
16
21
|
* The SubscriptionArgs type is retained for backwards compatibility.
|
|
22
|
+
* @deprecated use ExecutionArgs instead. Will be removed in v17
|
|
17
23
|
*/
|
|
18
24
|
export interface SubscriptionArgs extends ExecutionArgs {}
|
|
19
25
|
export { subscribe, createSourceEventStream } from '../execution/subscribe';
|
package/subscription/index.mjs
CHANGED
|
@@ -5,15 +5,21 @@
|
|
|
5
5
|
*
|
|
6
6
|
* For backwards compatibility, the `graphql/subscription` module
|
|
7
7
|
* currently re-exports the moved functions from the `graphql/execution`
|
|
8
|
-
* module. In
|
|
9
|
-
*
|
|
8
|
+
* module. In v17, the `graphql/subscription` module will be dropped entirely.
|
|
9
|
+
*
|
|
10
|
+
* These exports are also available from the root `graphql` package.
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
* @category Subscriptions
|
|
10
13
|
*/
|
|
11
14
|
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
16
|
+
* Deprecated legacy alias for ExecutionArgs retained by the subscription
|
|
17
|
+
* module. Use `ExecutionArgs` directly instead because SubscriptionArgs will be
|
|
18
|
+
* removed in v17.
|
|
14
19
|
*
|
|
15
20
|
* ExecutionArgs has been broadened to include all properties within SubscriptionArgs.
|
|
16
21
|
* The SubscriptionArgs type is retained for backwards compatibility.
|
|
22
|
+
* @deprecated use ExecutionArgs instead. Will be removed in v17
|
|
17
23
|
*/
|
|
18
24
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
19
25
|
export { subscribe, createSourceEventStream } from '../execution/subscribe.mjs';
|
package/type/assertName.d.ts
CHANGED
|
@@ -1,10 +1,27 @@
|
|
|
1
|
+
/** @category Names */
|
|
1
2
|
/**
|
|
2
3
|
* Upholds the spec rules about naming.
|
|
4
|
+
* @param name - The GraphQL name to validate.
|
|
5
|
+
* @returns The validated GraphQL name.
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { assertName } from 'graphql/type';
|
|
9
|
+
*
|
|
10
|
+
* assertName('User'); // => 'User'
|
|
11
|
+
* assertName('123User'); // throws an error
|
|
12
|
+
* ```
|
|
3
13
|
*/
|
|
4
14
|
export declare function assertName(name: string): string;
|
|
5
15
|
/**
|
|
6
16
|
* Upholds the spec rules about naming enum values.
|
|
17
|
+
* @param name - The GraphQL name to validate.
|
|
18
|
+
* @returns The validated GraphQL name.
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* import { assertEnumValueName } from 'graphql/type';
|
|
7
22
|
*
|
|
8
|
-
*
|
|
23
|
+
* assertEnumValueName('ACTIVE'); // => 'ACTIVE'
|
|
24
|
+
* assertEnumValueName('true'); // throws an error
|
|
25
|
+
* ```
|
|
9
26
|
*/
|
|
10
27
|
export declare function assertEnumValueName(name: string): string;
|
package/type/assertName.js
CHANGED
|
@@ -12,8 +12,19 @@ var _GraphQLError = require('../error/GraphQLError.js');
|
|
|
12
12
|
|
|
13
13
|
var _characterClasses = require('../language/characterClasses.js');
|
|
14
14
|
|
|
15
|
+
/** @category Names */
|
|
16
|
+
|
|
15
17
|
/**
|
|
16
18
|
* Upholds the spec rules about naming.
|
|
19
|
+
* @param name - The GraphQL name to validate.
|
|
20
|
+
* @returns The validated GraphQL name.
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { assertName } from 'graphql/type';
|
|
24
|
+
*
|
|
25
|
+
* assertName('User'); // => 'User'
|
|
26
|
+
* assertName('123User'); // throws an error
|
|
27
|
+
* ```
|
|
17
28
|
*/
|
|
18
29
|
function assertName(name) {
|
|
19
30
|
name != null || (0, _devAssert.devAssert)(false, 'Must provide name.');
|
|
@@ -44,8 +55,15 @@ function assertName(name) {
|
|
|
44
55
|
}
|
|
45
56
|
/**
|
|
46
57
|
* Upholds the spec rules about naming enum values.
|
|
58
|
+
* @param name - The GraphQL name to validate.
|
|
59
|
+
* @returns The validated GraphQL name.
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* import { assertEnumValueName } from 'graphql/type';
|
|
47
63
|
*
|
|
48
|
-
*
|
|
64
|
+
* assertEnumValueName('ACTIVE'); // => 'ACTIVE'
|
|
65
|
+
* assertEnumValueName('true'); // throws an error
|
|
66
|
+
* ```
|
|
49
67
|
*/
|
|
50
68
|
|
|
51
69
|
function assertEnumValueName(name) {
|
package/type/assertName.mjs
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
|
+
/** @category Names */
|
|
1
2
|
import { devAssert } from '../jsutils/devAssert.mjs';
|
|
2
3
|
import { GraphQLError } from '../error/GraphQLError.mjs';
|
|
3
4
|
import { isNameContinue, isNameStart } from '../language/characterClasses.mjs';
|
|
4
5
|
/**
|
|
5
6
|
* Upholds the spec rules about naming.
|
|
7
|
+
* @param name - The GraphQL name to validate.
|
|
8
|
+
* @returns The validated GraphQL name.
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { assertName } from 'graphql/type';
|
|
12
|
+
*
|
|
13
|
+
* assertName('User'); // => 'User'
|
|
14
|
+
* assertName('123User'); // throws an error
|
|
15
|
+
* ```
|
|
6
16
|
*/
|
|
7
17
|
|
|
8
18
|
export function assertName(name) {
|
|
@@ -31,8 +41,15 @@ export function assertName(name) {
|
|
|
31
41
|
}
|
|
32
42
|
/**
|
|
33
43
|
* Upholds the spec rules about naming enum values.
|
|
44
|
+
* @param name - The GraphQL name to validate.
|
|
45
|
+
* @returns The validated GraphQL name.
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* import { assertEnumValueName } from 'graphql/type';
|
|
34
49
|
*
|
|
35
|
-
*
|
|
50
|
+
* assertEnumValueName('ACTIVE'); // => 'ACTIVE'
|
|
51
|
+
* assertEnumValueName('true'); // throws an error
|
|
52
|
+
* ```
|
|
36
53
|
*/
|
|
37
54
|
|
|
38
55
|
export function assertEnumValueName(name) {
|