graphql 16.13.2 → 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 +12 -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 +422 -55
- package/language/ast.js +103 -39
- package/language/ast.mjs +103 -39
- package/language/blockString.d.ts +1 -3
- package/language/blockString.js +1 -3
- package/language/blockString.mjs +1 -3
- package/language/directiveLocation.d.ts +29 -8
- package/language/directiveLocation.js +10 -6
- package/language/directiveLocation.mjs +10 -6
- package/language/index.d.ts +7 -0
- package/language/index.mjs +6 -0
- package/language/kinds.d.ts +58 -18
- package/language/kinds.js +10 -6
- package/language/kinds.mjs +10 -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 +248 -11
- package/language/parser.js +257 -0
- package/language/parser.mjs +257 -3
- package/language/predicates.d.ts +169 -0
- package/language/predicates.js +173 -1
- package/language/predicates.mjs +185 -1
- 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 +32 -1
- package/language/printer.mjs +31 -1
- 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 +202 -19
- package/type/directives.js +206 -20
- package/type/directives.mjs +206 -20
- package/type/index.d.ts +6 -0
- package/type/index.mjs +6 -0
- package/type/introspection.d.ts +36 -0
- package/type/introspection.js +57 -1
- package/type/introspection.mjs +65 -1
- 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 +69 -6
- package/utilities/buildASTSchema.mjs +69 -6
- package/utilities/buildClientSchema.d.ts +15 -0
- package/utilities/buildClientSchema.js +17 -0
- package/utilities/buildClientSchema.mjs +16 -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 +121 -6
- package/utilities/extendSchema.mjs +120 -6
- package/utilities/findBreakingChanges.d.ts +95 -0
- package/utilities/findBreakingChanges.js +68 -0
- package/utilities/findBreakingChanges.mjs +70 -0
- package/utilities/getIntrospectionQuery.d.ts +148 -0
- package/utilities/getIntrospectionQuery.js +72 -38
- package/utilities/getIntrospectionQuery.mjs +72 -38
- 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 +56 -0
- package/utilities/introspectionFromSchema.mjs +55 -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 +67 -0
- package/utilities/printSchema.mjs +68 -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 +51 -2
- package/utilities/valueFromAST.mjs +50 -2
- 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 +33 -0
- package/validation/rules/KnownDirectivesRule.mjs +32 -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 +41 -0
- package/validation/rules/UniqueDirectivesPerLocationRule.mjs +40 -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 +7 -9
- package/version.mjs +6 -9
|
@@ -1,12 +1,40 @@
|
|
|
1
|
+
/** @category Source */
|
|
1
2
|
import type { Location } from './ast';
|
|
2
3
|
import type { SourceLocation } from './location';
|
|
3
4
|
import type { Source } from './source';
|
|
4
5
|
/**
|
|
5
6
|
* Render a helpful description of the location in the GraphQL Source document.
|
|
7
|
+
* @param location - The AST location to print.
|
|
8
|
+
* @returns A formatted source excerpt with line and column information.
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { parse, printLocation } from 'graphql/language';
|
|
12
|
+
*
|
|
13
|
+
* const document = parse('type Query { hello: String }');
|
|
14
|
+
* const location = document.definitions[0].loc;
|
|
15
|
+
*
|
|
16
|
+
* if (location) {
|
|
17
|
+
* const printed = printLocation(location);
|
|
18
|
+
*
|
|
19
|
+
* printed; // => 'GraphQL request:1:1\n1 | type Query { hello: String }\n | ^'
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
6
22
|
*/
|
|
7
23
|
export declare function printLocation(location: Location): string;
|
|
8
24
|
/**
|
|
9
25
|
* Render a helpful description of the location in the GraphQL Source document.
|
|
26
|
+
* @param source - The source document that contains the location.
|
|
27
|
+
* @param sourceLocation - The 1-indexed line and column to print.
|
|
28
|
+
* @returns A formatted source excerpt with line and column information.
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { Source, printSourceLocation } from 'graphql/language';
|
|
32
|
+
*
|
|
33
|
+
* const source = new Source('type Query { hello: String }');
|
|
34
|
+
* const printed = printSourceLocation(source, { line: 1, column: 14 });
|
|
35
|
+
*
|
|
36
|
+
* printed; // => 'GraphQL request:1:14\n1 | type Query { hello: String }\n | ^'
|
|
37
|
+
* ```
|
|
10
38
|
*/
|
|
11
39
|
export declare function printSourceLocation(
|
|
12
40
|
source: Source,
|
|
@@ -8,8 +8,25 @@ exports.printSourceLocation = printSourceLocation;
|
|
|
8
8
|
|
|
9
9
|
var _location = require('./location.js');
|
|
10
10
|
|
|
11
|
+
/** @category Source */
|
|
12
|
+
|
|
11
13
|
/**
|
|
12
14
|
* Render a helpful description of the location in the GraphQL Source document.
|
|
15
|
+
* @param location - The AST location to print.
|
|
16
|
+
* @returns A formatted source excerpt with line and column information.
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { parse, printLocation } from 'graphql/language';
|
|
20
|
+
*
|
|
21
|
+
* const document = parse('type Query { hello: String }');
|
|
22
|
+
* const location = document.definitions[0].loc;
|
|
23
|
+
*
|
|
24
|
+
* if (location) {
|
|
25
|
+
* const printed = printLocation(location);
|
|
26
|
+
*
|
|
27
|
+
* printed; // => 'GraphQL request:1:1\n1 | type Query { hello: String }\n | ^'
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
13
30
|
*/
|
|
14
31
|
function printLocation(location) {
|
|
15
32
|
return printSourceLocation(
|
|
@@ -19,6 +36,18 @@ function printLocation(location) {
|
|
|
19
36
|
}
|
|
20
37
|
/**
|
|
21
38
|
* Render a helpful description of the location in the GraphQL Source document.
|
|
39
|
+
* @param source - The source document that contains the location.
|
|
40
|
+
* @param sourceLocation - The 1-indexed line and column to print.
|
|
41
|
+
* @returns A formatted source excerpt with line and column information.
|
|
42
|
+
* @example
|
|
43
|
+
* ```ts
|
|
44
|
+
* import { Source, printSourceLocation } from 'graphql/language';
|
|
45
|
+
*
|
|
46
|
+
* const source = new Source('type Query { hello: String }');
|
|
47
|
+
* const printed = printSourceLocation(source, { line: 1, column: 14 });
|
|
48
|
+
*
|
|
49
|
+
* printed; // => 'GraphQL request:1:14\n1 | type Query { hello: String }\n | ^'
|
|
50
|
+
* ```
|
|
22
51
|
*/
|
|
23
52
|
|
|
24
53
|
function printSourceLocation(source, sourceLocation) {
|
|
@@ -1,7 +1,23 @@
|
|
|
1
|
+
/** @category Source */
|
|
1
2
|
import { getLocation } from './location.mjs';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Render a helpful description of the location in the GraphQL Source document.
|
|
6
|
+
* @param location - The AST location to print.
|
|
7
|
+
* @returns A formatted source excerpt with line and column information.
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { parse, printLocation } from 'graphql/language';
|
|
11
|
+
*
|
|
12
|
+
* const document = parse('type Query { hello: String }');
|
|
13
|
+
* const location = document.definitions[0].loc;
|
|
14
|
+
*
|
|
15
|
+
* if (location) {
|
|
16
|
+
* const printed = printLocation(location);
|
|
17
|
+
*
|
|
18
|
+
* printed; // => 'GraphQL request:1:1\n1 | type Query { hello: String }\n | ^'
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
5
21
|
*/
|
|
6
22
|
export function printLocation(location) {
|
|
7
23
|
return printSourceLocation(
|
|
@@ -11,6 +27,18 @@ export function printLocation(location) {
|
|
|
11
27
|
}
|
|
12
28
|
/**
|
|
13
29
|
* Render a helpful description of the location in the GraphQL Source document.
|
|
30
|
+
* @param source - The source document that contains the location.
|
|
31
|
+
* @param sourceLocation - The 1-indexed line and column to print.
|
|
32
|
+
* @returns A formatted source excerpt with line and column information.
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { Source, printSourceLocation } from 'graphql/language';
|
|
36
|
+
*
|
|
37
|
+
* const source = new Source('type Query { hello: String }');
|
|
38
|
+
* const printed = printSourceLocation(source, { line: 1, column: 14 });
|
|
39
|
+
*
|
|
40
|
+
* printed; // => 'GraphQL request:1:14\n1 | type Query { hello: String }\n | ^'
|
|
41
|
+
* ```
|
|
14
42
|
*/
|
|
15
43
|
|
|
16
44
|
export function printSourceLocation(source, sourceLocation) {
|
package/language/printString.js
CHANGED
|
@@ -8,10 +8,14 @@ exports.printString = printString;
|
|
|
8
8
|
/**
|
|
9
9
|
* Prints a string as a GraphQL StringValue literal. Replaces control characters
|
|
10
10
|
* and excluded characters (" U+0022 and \\ U+005C) with escape sequences.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
11
13
|
*/
|
|
12
14
|
function printString(str) {
|
|
13
15
|
return `"${str.replace(escapedRegExp, escapedReplacer)}"`;
|
|
14
|
-
}
|
|
16
|
+
}
|
|
17
|
+
/** @internal */
|
|
18
|
+
// eslint-disable-next-line no-control-regex
|
|
15
19
|
|
|
16
20
|
const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g;
|
|
17
21
|
|
package/language/printString.mjs
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Prints a string as a GraphQL StringValue literal. Replaces control characters
|
|
3
3
|
* and excluded characters (" U+0022 and \\ U+005C) with escape sequences.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
4
6
|
*/
|
|
5
7
|
export function printString(str) {
|
|
6
8
|
return `"${str.replace(escapedRegExp, escapedReplacer)}"`;
|
|
7
|
-
}
|
|
9
|
+
}
|
|
10
|
+
/** @internal */
|
|
11
|
+
// eslint-disable-next-line no-control-regex
|
|
8
12
|
|
|
9
13
|
const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g;
|
|
10
14
|
|
package/language/printer.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
|
+
/** @category Printing */
|
|
1
2
|
import type { ASTNode } from './ast';
|
|
2
3
|
/**
|
|
3
4
|
* Converts an AST into a string, using one set of reasonable
|
|
4
5
|
* formatting rules.
|
|
6
|
+
* @param ast - The GraphQL AST node to print.
|
|
7
|
+
* @returns A stable string representation of the AST.
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { parse, print } from 'graphql';
|
|
11
|
+
*
|
|
12
|
+
* const ast = parse('{ hero { name } }');
|
|
13
|
+
* const text = print(ast);
|
|
14
|
+
*
|
|
15
|
+
* text; // => '{\n hero {\n name\n }\n}'
|
|
16
|
+
* ```
|
|
5
17
|
*/
|
|
6
18
|
export declare function print(ast: ASTNode): string;
|
package/language/printer.js
CHANGED
|
@@ -11,9 +11,22 @@ var _printString = require('./printString.js');
|
|
|
11
11
|
|
|
12
12
|
var _visitor = require('./visitor.js');
|
|
13
13
|
|
|
14
|
+
/** @category Printing */
|
|
15
|
+
|
|
14
16
|
/**
|
|
15
17
|
* Converts an AST into a string, using one set of reasonable
|
|
16
18
|
* formatting rules.
|
|
19
|
+
* @param ast - The GraphQL AST node to print.
|
|
20
|
+
* @returns A stable string representation of the AST.
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import { parse, print } from 'graphql';
|
|
24
|
+
*
|
|
25
|
+
* const ast = parse('{ hero { name } }');
|
|
26
|
+
* const text = print(ast);
|
|
27
|
+
*
|
|
28
|
+
* text; // => '{\n hero {\n name\n }\n}'
|
|
29
|
+
* ```
|
|
17
30
|
*/
|
|
18
31
|
function print(ast) {
|
|
19
32
|
return (0, _visitor.visit)(ast, printDocASTReducer);
|
|
@@ -240,13 +253,21 @@ const printDocASTReducer = {
|
|
|
240
253
|
join(['input', name, join(directives, ' '), block(fields)], ' '),
|
|
241
254
|
},
|
|
242
255
|
DirectiveDefinition: {
|
|
243
|
-
leave: ({
|
|
256
|
+
leave: ({
|
|
257
|
+
description,
|
|
258
|
+
name,
|
|
259
|
+
arguments: args,
|
|
260
|
+
directives,
|
|
261
|
+
repeatable,
|
|
262
|
+
locations,
|
|
263
|
+
}) =>
|
|
244
264
|
wrap('', description, '\n') +
|
|
245
265
|
'directive @' +
|
|
246
266
|
name +
|
|
247
267
|
(hasMultilineItems(args)
|
|
248
268
|
? wrap('(\n', indent(join(args, '\n')), '\n)')
|
|
249
269
|
: wrap('(', join(args, ', '), ')')) +
|
|
270
|
+
wrap(' ', join(directives, ' ')) +
|
|
250
271
|
(repeatable ? ' repeatable' : '') +
|
|
251
272
|
' on ' +
|
|
252
273
|
join(locations, ' | '),
|
|
@@ -308,6 +329,10 @@ const printDocASTReducer = {
|
|
|
308
329
|
leave: ({ name, directives, fields }) =>
|
|
309
330
|
join(['extend input', name, join(directives, ' '), block(fields)], ' '),
|
|
310
331
|
},
|
|
332
|
+
DirectiveExtension: {
|
|
333
|
+
leave: ({ name, directives }) =>
|
|
334
|
+
join(['extend directive @' + name, join(directives, ' ')], ' '),
|
|
335
|
+
},
|
|
311
336
|
// Schema Coordinates
|
|
312
337
|
TypeCoordinate: {
|
|
313
338
|
leave: ({ name }) => name,
|
|
@@ -330,6 +355,8 @@ const printDocASTReducer = {
|
|
|
330
355
|
/**
|
|
331
356
|
* Given maybeArray, print an empty string if it is null or empty, otherwise
|
|
332
357
|
* print all items together separated by separator if provided
|
|
358
|
+
*
|
|
359
|
+
* @internal
|
|
333
360
|
*/
|
|
334
361
|
|
|
335
362
|
function join(maybeArray, separator = '') {
|
|
@@ -345,6 +372,8 @@ function join(maybeArray, separator = '') {
|
|
|
345
372
|
}
|
|
346
373
|
/**
|
|
347
374
|
* Given array, print each item on its own line, wrapped in an indented `{ }` block.
|
|
375
|
+
*
|
|
376
|
+
* @internal
|
|
348
377
|
*/
|
|
349
378
|
|
|
350
379
|
function block(array) {
|
|
@@ -352,6 +381,8 @@ function block(array) {
|
|
|
352
381
|
}
|
|
353
382
|
/**
|
|
354
383
|
* If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.
|
|
384
|
+
*
|
|
385
|
+
* @internal
|
|
355
386
|
*/
|
|
356
387
|
|
|
357
388
|
function wrap(start, maybeString, end = '') {
|
package/language/printer.mjs
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
+
/** @category Printing */
|
|
1
2
|
import { printBlockString } from './blockString.mjs';
|
|
2
3
|
import { printString } from './printString.mjs';
|
|
3
4
|
import { visit } from './visitor.mjs';
|
|
4
5
|
/**
|
|
5
6
|
* Converts an AST into a string, using one set of reasonable
|
|
6
7
|
* formatting rules.
|
|
8
|
+
* @param ast - The GraphQL AST node to print.
|
|
9
|
+
* @returns A stable string representation of the AST.
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { parse, print } from 'graphql';
|
|
13
|
+
*
|
|
14
|
+
* const ast = parse('{ hero { name } }');
|
|
15
|
+
* const text = print(ast);
|
|
16
|
+
*
|
|
17
|
+
* text; // => '{\n hero {\n name\n }\n}'
|
|
18
|
+
* ```
|
|
7
19
|
*/
|
|
8
20
|
|
|
9
21
|
export function print(ast) {
|
|
@@ -228,13 +240,21 @@ const printDocASTReducer = {
|
|
|
228
240
|
join(['input', name, join(directives, ' '), block(fields)], ' '),
|
|
229
241
|
},
|
|
230
242
|
DirectiveDefinition: {
|
|
231
|
-
leave: ({
|
|
243
|
+
leave: ({
|
|
244
|
+
description,
|
|
245
|
+
name,
|
|
246
|
+
arguments: args,
|
|
247
|
+
directives,
|
|
248
|
+
repeatable,
|
|
249
|
+
locations,
|
|
250
|
+
}) =>
|
|
232
251
|
wrap('', description, '\n') +
|
|
233
252
|
'directive @' +
|
|
234
253
|
name +
|
|
235
254
|
(hasMultilineItems(args)
|
|
236
255
|
? wrap('(\n', indent(join(args, '\n')), '\n)')
|
|
237
256
|
: wrap('(', join(args, ', '), ')')) +
|
|
257
|
+
wrap(' ', join(directives, ' ')) +
|
|
238
258
|
(repeatable ? ' repeatable' : '') +
|
|
239
259
|
' on ' +
|
|
240
260
|
join(locations, ' | '),
|
|
@@ -296,6 +316,10 @@ const printDocASTReducer = {
|
|
|
296
316
|
leave: ({ name, directives, fields }) =>
|
|
297
317
|
join(['extend input', name, join(directives, ' '), block(fields)], ' '),
|
|
298
318
|
},
|
|
319
|
+
DirectiveExtension: {
|
|
320
|
+
leave: ({ name, directives }) =>
|
|
321
|
+
join(['extend directive @' + name, join(directives, ' ')], ' '),
|
|
322
|
+
},
|
|
299
323
|
// Schema Coordinates
|
|
300
324
|
TypeCoordinate: {
|
|
301
325
|
leave: ({ name }) => name,
|
|
@@ -318,6 +342,8 @@ const printDocASTReducer = {
|
|
|
318
342
|
/**
|
|
319
343
|
* Given maybeArray, print an empty string if it is null or empty, otherwise
|
|
320
344
|
* print all items together separated by separator if provided
|
|
345
|
+
*
|
|
346
|
+
* @internal
|
|
321
347
|
*/
|
|
322
348
|
|
|
323
349
|
function join(maybeArray, separator = '') {
|
|
@@ -333,6 +359,8 @@ function join(maybeArray, separator = '') {
|
|
|
333
359
|
}
|
|
334
360
|
/**
|
|
335
361
|
* Given array, print each item on its own line, wrapped in an indented `{ }` block.
|
|
362
|
+
*
|
|
363
|
+
* @internal
|
|
336
364
|
*/
|
|
337
365
|
|
|
338
366
|
function block(array) {
|
|
@@ -340,6 +368,8 @@ function block(array) {
|
|
|
340
368
|
}
|
|
341
369
|
/**
|
|
342
370
|
* If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.
|
|
371
|
+
*
|
|
372
|
+
* @internal
|
|
343
373
|
*/
|
|
344
374
|
|
|
345
375
|
function wrap(start, maybeString, end = '') {
|
|
@@ -8,16 +8,14 @@ import type { Source } from './source';
|
|
|
8
8
|
* source lexes, the final Token emitted by the lexer will be of kind
|
|
9
9
|
* EOF, after which the lexer will repeatedly return the same EOF token
|
|
10
10
|
* whenever called.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
11
13
|
*/
|
|
12
14
|
export declare class SchemaCoordinateLexer implements LexerInterface {
|
|
13
15
|
source: Source;
|
|
14
|
-
/**
|
|
15
|
-
* The previously focused non-ignored token.
|
|
16
|
-
*/
|
|
16
|
+
/** The previously focused non-ignored token. */
|
|
17
17
|
lastToken: Token;
|
|
18
|
-
/**
|
|
19
|
-
* The currently focused non-ignored token.
|
|
20
|
-
*/
|
|
18
|
+
/** The currently focused non-ignored token. */
|
|
21
19
|
token: Token;
|
|
22
20
|
/**
|
|
23
21
|
* The (1-indexed) line containing the current token.
|
|
@@ -33,11 +31,15 @@ export declare class SchemaCoordinateLexer implements LexerInterface {
|
|
|
33
31
|
get [Symbol.toStringTag](): string;
|
|
34
32
|
/**
|
|
35
33
|
* Advances the token stream to the next non-ignored token.
|
|
34
|
+
*
|
|
35
|
+
* @internal
|
|
36
36
|
*/
|
|
37
37
|
advance(): Token;
|
|
38
38
|
/**
|
|
39
39
|
* Looks ahead and returns the next non-ignored token, but does not change
|
|
40
40
|
* the current Lexer token.
|
|
41
|
+
*
|
|
42
|
+
* @internal
|
|
41
43
|
*/
|
|
42
44
|
lookahead(): Token;
|
|
43
45
|
}
|
|
@@ -22,15 +22,13 @@ var _tokenKind = require('./tokenKind.js');
|
|
|
22
22
|
* source lexes, the final Token emitted by the lexer will be of kind
|
|
23
23
|
* EOF, after which the lexer will repeatedly return the same EOF token
|
|
24
24
|
* whenever called.
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
25
27
|
*/
|
|
26
28
|
class SchemaCoordinateLexer {
|
|
27
|
-
/**
|
|
28
|
-
* The previously focused non-ignored token.
|
|
29
|
-
*/
|
|
29
|
+
/** The previously focused non-ignored token. */
|
|
30
30
|
|
|
31
|
-
/**
|
|
32
|
-
* The currently focused non-ignored token.
|
|
33
|
-
*/
|
|
31
|
+
/** The currently focused non-ignored token. */
|
|
34
32
|
|
|
35
33
|
/**
|
|
36
34
|
* The (1-indexed) line containing the current token.
|
|
@@ -62,6 +60,8 @@ class SchemaCoordinateLexer {
|
|
|
62
60
|
}
|
|
63
61
|
/**
|
|
64
62
|
* Advances the token stream to the next non-ignored token.
|
|
63
|
+
*
|
|
64
|
+
* @internal
|
|
65
65
|
*/
|
|
66
66
|
|
|
67
67
|
advance() {
|
|
@@ -72,6 +72,8 @@ class SchemaCoordinateLexer {
|
|
|
72
72
|
/**
|
|
73
73
|
* Looks ahead and returns the next non-ignored token, but does not change
|
|
74
74
|
* the current Lexer token.
|
|
75
|
+
*
|
|
76
|
+
* @internal
|
|
75
77
|
*/
|
|
76
78
|
|
|
77
79
|
lookahead() {
|
|
@@ -92,6 +94,8 @@ class SchemaCoordinateLexer {
|
|
|
92
94
|
}
|
|
93
95
|
/**
|
|
94
96
|
* Gets the next token from the source starting at the given position.
|
|
97
|
+
*
|
|
98
|
+
* @internal
|
|
95
99
|
*/
|
|
96
100
|
|
|
97
101
|
exports.SchemaCoordinateLexer = SchemaCoordinateLexer;
|
|
@@ -10,16 +10,14 @@ import { TokenKind } from './tokenKind.mjs';
|
|
|
10
10
|
* source lexes, the final Token emitted by the lexer will be of kind
|
|
11
11
|
* EOF, after which the lexer will repeatedly return the same EOF token
|
|
12
12
|
* whenever called.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
13
15
|
*/
|
|
14
16
|
|
|
15
17
|
export class SchemaCoordinateLexer {
|
|
16
|
-
/**
|
|
17
|
-
* The previously focused non-ignored token.
|
|
18
|
-
*/
|
|
18
|
+
/** The previously focused non-ignored token. */
|
|
19
19
|
|
|
20
|
-
/**
|
|
21
|
-
* The currently focused non-ignored token.
|
|
22
|
-
*/
|
|
20
|
+
/** The currently focused non-ignored token. */
|
|
23
21
|
|
|
24
22
|
/**
|
|
25
23
|
* The (1-indexed) line containing the current token.
|
|
@@ -45,6 +43,8 @@ export class SchemaCoordinateLexer {
|
|
|
45
43
|
}
|
|
46
44
|
/**
|
|
47
45
|
* Advances the token stream to the next non-ignored token.
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
48
|
*/
|
|
49
49
|
|
|
50
50
|
advance() {
|
|
@@ -55,6 +55,8 @@ export class SchemaCoordinateLexer {
|
|
|
55
55
|
/**
|
|
56
56
|
* Looks ahead and returns the next non-ignored token, but does not change
|
|
57
57
|
* the current Lexer token.
|
|
58
|
+
*
|
|
59
|
+
* @internal
|
|
58
60
|
*/
|
|
59
61
|
|
|
60
62
|
lookahead() {
|
|
@@ -75,6 +77,8 @@ export class SchemaCoordinateLexer {
|
|
|
75
77
|
}
|
|
76
78
|
/**
|
|
77
79
|
* Gets the next token from the source starting at the given position.
|
|
80
|
+
*
|
|
81
|
+
* @internal
|
|
78
82
|
*/
|
|
79
83
|
|
|
80
84
|
function readNextToken(lexer, start) {
|
package/language/source.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Source */
|
|
1
2
|
interface Location {
|
|
2
3
|
line: number;
|
|
3
4
|
column: number;
|
|
@@ -10,10 +11,37 @@ interface Location {
|
|
|
10
11
|
* The `line` and `column` properties in `locationOffset` are 1-indexed.
|
|
11
12
|
*/
|
|
12
13
|
export declare class Source {
|
|
14
|
+
/** The GraphQL source text. */
|
|
13
15
|
body: string;
|
|
16
|
+
/** Name used in diagnostics for this source, such as a file path or request name. */
|
|
14
17
|
name: string;
|
|
18
|
+
/** One-indexed line and column where this source begins. */
|
|
15
19
|
locationOffset: Location;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a Source instance.
|
|
22
|
+
* @param body - The GraphQL source text.
|
|
23
|
+
* @param name - Name used in diagnostics for this source.
|
|
24
|
+
* @param locationOffset - One-indexed line and column where this source begins.
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { Source } from 'graphql/language';
|
|
28
|
+
*
|
|
29
|
+
* const source = new Source(
|
|
30
|
+
* 'type Query { greeting: String }',
|
|
31
|
+
* 'schema.graphql',
|
|
32
|
+
* { line: 10, column: 1 },
|
|
33
|
+
* );
|
|
34
|
+
*
|
|
35
|
+
* source.body; // => 'type Query { greeting: String }'
|
|
36
|
+
* source.name; // => 'schema.graphql'
|
|
37
|
+
* source.locationOffset; // => { line: 10, column: 1 }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
16
40
|
constructor(body: string, name?: string, locationOffset?: Location);
|
|
41
|
+
/**
|
|
42
|
+
* Returns the value used by `Object.prototype.toString`.
|
|
43
|
+
* @returns The built-in string tag for this object.
|
|
44
|
+
*/
|
|
17
45
|
get [Symbol.toStringTag](): string;
|
|
18
46
|
}
|
|
19
47
|
/**
|
package/language/source.js
CHANGED
|
@@ -12,6 +12,8 @@ var _inspect = require('../jsutils/inspect.js');
|
|
|
12
12
|
|
|
13
13
|
var _instanceOf = require('../jsutils/instanceOf.js');
|
|
14
14
|
|
|
15
|
+
/** @category Source */
|
|
16
|
+
|
|
15
17
|
/**
|
|
16
18
|
* A representation of source input to GraphQL. The `name` and `locationOffset` parameters are
|
|
17
19
|
* optional, but they are useful for clients who store GraphQL documents in source files.
|
|
@@ -20,6 +22,32 @@ var _instanceOf = require('../jsutils/instanceOf.js');
|
|
|
20
22
|
* The `line` and `column` properties in `locationOffset` are 1-indexed.
|
|
21
23
|
*/
|
|
22
24
|
class Source {
|
|
25
|
+
/** The GraphQL source text. */
|
|
26
|
+
|
|
27
|
+
/** Name used in diagnostics for this source, such as a file path or request name. */
|
|
28
|
+
|
|
29
|
+
/** One-indexed line and column where this source begins. */
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Creates a Source instance.
|
|
33
|
+
* @param body - The GraphQL source text.
|
|
34
|
+
* @param name - Name used in diagnostics for this source.
|
|
35
|
+
* @param locationOffset - One-indexed line and column where this source begins.
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* import { Source } from 'graphql/language';
|
|
39
|
+
*
|
|
40
|
+
* const source = new Source(
|
|
41
|
+
* 'type Query { greeting: String }',
|
|
42
|
+
* 'schema.graphql',
|
|
43
|
+
* { line: 10, column: 1 },
|
|
44
|
+
* );
|
|
45
|
+
*
|
|
46
|
+
* source.body; // => 'type Query { greeting: String }'
|
|
47
|
+
* source.name; // => 'schema.graphql'
|
|
48
|
+
* source.locationOffset; // => { line: 10, column: 1 }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
23
51
|
constructor(
|
|
24
52
|
body,
|
|
25
53
|
name = 'GraphQL request',
|
|
@@ -47,6 +75,10 @@ class Source {
|
|
|
47
75
|
'column in locationOffset is 1-indexed and must be positive.',
|
|
48
76
|
);
|
|
49
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Returns the value used by `Object.prototype.toString`.
|
|
80
|
+
* @returns The built-in string tag for this object.
|
|
81
|
+
*/
|
|
50
82
|
|
|
51
83
|
get [Symbol.toStringTag]() {
|
|
52
84
|
return 'Source';
|
package/language/source.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Source */
|
|
1
2
|
import { devAssert } from '../jsutils/devAssert.mjs';
|
|
2
3
|
import { inspect } from '../jsutils/inspect.mjs';
|
|
3
4
|
import { instanceOf } from '../jsutils/instanceOf.mjs';
|
|
@@ -10,6 +11,32 @@ import { instanceOf } from '../jsutils/instanceOf.mjs';
|
|
|
10
11
|
* The `line` and `column` properties in `locationOffset` are 1-indexed.
|
|
11
12
|
*/
|
|
12
13
|
export class Source {
|
|
14
|
+
/** The GraphQL source text. */
|
|
15
|
+
|
|
16
|
+
/** Name used in diagnostics for this source, such as a file path or request name. */
|
|
17
|
+
|
|
18
|
+
/** One-indexed line and column where this source begins. */
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Creates a Source instance.
|
|
22
|
+
* @param body - The GraphQL source text.
|
|
23
|
+
* @param name - Name used in diagnostics for this source.
|
|
24
|
+
* @param locationOffset - One-indexed line and column where this source begins.
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { Source } from 'graphql/language';
|
|
28
|
+
*
|
|
29
|
+
* const source = new Source(
|
|
30
|
+
* 'type Query { greeting: String }',
|
|
31
|
+
* 'schema.graphql',
|
|
32
|
+
* { line: 10, column: 1 },
|
|
33
|
+
* );
|
|
34
|
+
*
|
|
35
|
+
* source.body; // => 'type Query { greeting: String }'
|
|
36
|
+
* source.name; // => 'schema.graphql'
|
|
37
|
+
* source.locationOffset; // => { line: 10, column: 1 }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
13
40
|
constructor(
|
|
14
41
|
body,
|
|
15
42
|
name = 'GraphQL request',
|
|
@@ -34,6 +61,10 @@ export class Source {
|
|
|
34
61
|
'column in locationOffset is 1-indexed and must be positive.',
|
|
35
62
|
);
|
|
36
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Returns the value used by `Object.prototype.toString`.
|
|
66
|
+
* @returns The built-in string tag for this object.
|
|
67
|
+
*/
|
|
37
68
|
|
|
38
69
|
get [Symbol.toStringTag]() {
|
|
39
70
|
return 'Source';
|