graphql 15.3.0 → 15.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +10 -0
- package/error/GraphQLError.js +8 -8
- package/error/GraphQLError.js.flow +2 -3
- package/error/GraphQLError.mjs +2 -2
- package/error/formatError.js +1 -1
- package/error/formatError.js.flow +0 -1
- package/error/index.js +4 -4
- package/error/index.js.flow +0 -1
- package/error/locatedError.d.ts +2 -2
- package/error/locatedError.js +10 -5
- package/error/locatedError.js.flow +10 -4
- package/error/locatedError.mjs +6 -4
- package/error/syntaxError.js +1 -1
- package/error/syntaxError.js.flow +0 -1
- package/execution/execute.d.ts +0 -15
- package/execution/execute.js +104 -104
- package/execution/execute.js.flow +119 -133
- package/execution/execute.mjs +86 -82
- package/execution/index.js +3 -3
- package/execution/index.js.flow +0 -1
- package/execution/values.js +11 -11
- package/execution/values.js.flow +0 -1
- package/graphql.js +5 -5
- package/graphql.js.flow +0 -1
- package/index.d.ts +1 -0
- package/index.js +9 -9
- package/index.js.flow +0 -1
- package/jsutils/ObjMap.js.flow +0 -1
- package/jsutils/Path.js.flow +0 -1
- package/jsutils/PromiseOrValue.js.flow +0 -1
- package/jsutils/defineInspect.js +2 -2
- package/jsutils/defineInspect.js.flow +0 -1
- package/jsutils/devAssert.js.flow +0 -1
- package/jsutils/didYouMean.js.flow +0 -1
- package/jsutils/identityFunc.js.flow +0 -1
- package/jsutils/inspect.js +1 -2
- package/jsutils/inspect.js.flow +10 -8
- package/jsutils/inspect.mjs +1 -1
- package/jsutils/instanceOf.js +15 -9
- package/jsutils/instanceOf.js.flow +13 -7
- package/jsutils/instanceOf.mjs +13 -5
- package/jsutils/invariant.js.flow +0 -1
- package/jsutils/isAsyncIterable.js +13 -0
- package/jsutils/isAsyncIterable.js.flow +14 -0
- package/jsutils/isAsyncIterable.mjs +10 -0
- package/jsutils/isObjectLike.js.flow +0 -1
- package/jsutils/isPromise.js.flow +0 -1
- package/jsutils/keyMap.js.flow +0 -1
- package/jsutils/keyValMap.js.flow +0 -1
- package/jsutils/mapValue.js +1 -1
- package/jsutils/mapValue.js.flow +0 -1
- package/jsutils/memoize3.js +2 -5
- package/jsutils/memoize3.js.flow +2 -5
- package/jsutils/memoize3.mjs +2 -5
- package/jsutils/naturalCompare.js +69 -0
- package/jsutils/naturalCompare.js.flow +59 -0
- package/jsutils/naturalCompare.mjs +61 -0
- package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
- package/jsutils/printPathArray.js.flow +0 -1
- package/jsutils/promiseForObject.js.flow +0 -1
- package/jsutils/promiseReduce.js +1 -1
- package/jsutils/promiseReduce.js.flow +0 -1
- package/jsutils/safeArrayFrom.js +73 -0
- package/jsutils/safeArrayFrom.js.flow +59 -0
- package/jsutils/safeArrayFrom.mjs +66 -0
- package/jsutils/suggestionList.js +5 -1
- package/jsutils/suggestionList.js.flow +3 -2
- package/jsutils/suggestionList.mjs +3 -1
- package/jsutils/toObjMap.js +1 -1
- package/jsutils/toObjMap.js.flow +0 -1
- package/language/ast.js +1 -1
- package/language/ast.js.flow +0 -1
- package/language/blockString.d.ts +1 -1
- package/language/blockString.js +53 -32
- package/language/blockString.js.flow +51 -36
- package/language/blockString.mjs +54 -33
- package/language/directiveLocation.js.flow +0 -1
- package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
- package/language/experimentalOnlineParser/grammar.js +987 -0
- package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
- package/language/experimentalOnlineParser/grammar.mjs +980 -0
- package/language/experimentalOnlineParser/index.d.ts +6 -0
- package/language/experimentalOnlineParser/index.js +31 -0
- package/language/experimentalOnlineParser/index.js.flow +7 -0
- package/language/experimentalOnlineParser/index.mjs +1 -0
- package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
- package/language/experimentalOnlineParser/onlineParser.js +604 -0
- package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
- package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
- package/language/index.js +12 -12
- package/language/index.js.flow +0 -1
- package/language/kinds.js.flow +0 -1
- package/language/lexer.js +242 -183
- package/language/lexer.js.flow +188 -184
- package/language/lexer.mjs +238 -179
- package/language/location.js.flow +0 -1
- package/language/parser.js +73 -68
- package/language/parser.js.flow +62 -57
- package/language/parser.mjs +64 -60
- package/language/predicates.js +1 -1
- package/language/predicates.js.flow +0 -1
- package/language/printLocation.js +1 -1
- package/language/printLocation.js.flow +0 -1
- package/language/printer.js +20 -13
- package/language/printer.js.flow +26 -25
- package/language/printer.mjs +18 -11
- package/language/source.d.ts +7 -0
- package/language/source.js +20 -3
- package/language/source.js.flow +21 -3
- package/language/source.mjs +14 -1
- package/language/tokenKind.js.flow +0 -1
- package/language/visitor.js +2 -2
- package/language/visitor.js.flow +0 -1
- package/package.json +2 -3
- package/polyfills/arrayFrom.js +2 -2
- package/polyfills/arrayFrom.js.flow +1 -2
- package/polyfills/arrayFrom.mjs +1 -1
- package/polyfills/find.js +1 -1
- package/polyfills/find.js.flow +1 -2
- package/polyfills/find.mjs +1 -1
- package/polyfills/isFinite.js +1 -1
- package/polyfills/isFinite.js.flow +1 -2
- package/polyfills/isFinite.mjs +1 -1
- package/polyfills/isInteger.js +1 -1
- package/polyfills/isInteger.js.flow +1 -2
- package/polyfills/isInteger.mjs +1 -1
- package/polyfills/objectEntries.js +1 -1
- package/polyfills/objectEntries.js.flow +1 -2
- package/polyfills/objectEntries.mjs +1 -1
- package/polyfills/objectValues.js +1 -1
- package/polyfills/objectValues.js.flow +1 -2
- package/polyfills/objectValues.mjs +1 -1
- package/polyfills/symbols.js +3 -5
- package/polyfills/symbols.js.flow +9 -6
- package/polyfills/symbols.mjs +3 -5
- package/subscription/index.js +1 -1
- package/subscription/index.js.flow +0 -1
- package/subscription/mapAsyncIterator.js +2 -2
- package/subscription/mapAsyncIterator.js.flow +8 -9
- package/subscription/mapAsyncIterator.mjs +1 -1
- package/subscription/subscribe.js +61 -73
- package/subscription/subscribe.js.flow +71 -85
- package/subscription/subscribe.mjs +53 -65
- package/type/definition.d.ts +16 -6
- package/type/definition.js +37 -32
- package/type/definition.js.flow +93 -63
- package/type/definition.mjs +19 -14
- package/type/directives.js +17 -16
- package/type/directives.js.flow +20 -13
- package/type/directives.mjs +6 -5
- package/type/index.js +6 -6
- package/type/index.js.flow +0 -1
- package/type/introspection.js +86 -65
- package/type/introspection.js.flow +75 -43
- package/type/introspection.mjs +79 -58
- package/type/scalars.js +9 -9
- package/type/scalars.js.flow +1 -2
- package/type/scalars.mjs +1 -1
- package/type/schema.js +13 -13
- package/type/schema.js.flow +2 -3
- package/type/schema.mjs +1 -1
- package/type/validate.js +52 -19
- package/type/validate.js.flow +54 -8
- package/type/validate.mjs +43 -9
- package/utilities/TypeInfo.js +7 -7
- package/utilities/TypeInfo.js.flow +1 -2
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +0 -1
- package/utilities/astFromValue.js +14 -16
- package/utilities/astFromValue.js.flow +6 -7
- package/utilities/astFromValue.mjs +6 -7
- package/utilities/buildASTSchema.js +17 -27
- package/utilities/buildASTSchema.js.flow +5 -21
- package/utilities/buildASTSchema.mjs +11 -21
- package/utilities/buildClientSchema.js +16 -15
- package/utilities/buildClientSchema.js.flow +28 -12
- package/utilities/buildClientSchema.mjs +5 -4
- package/utilities/coerceInputValue.js +17 -18
- package/utilities/coerceInputValue.js.flow +12 -10
- package/utilities/coerceInputValue.mjs +7 -7
- package/utilities/concatAST.js +9 -8
- package/utilities/concatAST.js.flow +8 -8
- package/utilities/concatAST.mjs +9 -6
- package/utilities/extendSchema.js +26 -19
- package/utilities/extendSchema.js.flow +19 -7
- package/utilities/extendSchema.mjs +8 -1
- package/utilities/findBreakingChanges.js +15 -11
- package/utilities/findBreakingChanges.js.flow +6 -3
- package/utilities/findBreakingChanges.mjs +5 -2
- package/utilities/findDeprecatedUsages.js +2 -2
- package/utilities/findDeprecatedUsages.js.flow +0 -1
- package/utilities/getIntrospectionQuery.d.ts +6 -0
- package/utilities/getIntrospectionQuery.js +8 -2
- package/utilities/getIntrospectionQuery.js.flow +17 -5
- package/utilities/getIntrospectionQuery.mjs +8 -2
- package/utilities/getOperationAST.js +1 -1
- package/utilities/getOperationAST.js.flow +0 -1
- package/utilities/getOperationRootType.js +1 -1
- package/utilities/getOperationRootType.js.flow +0 -1
- package/utilities/index.d.ts +3 -0
- package/utilities/index.js +22 -22
- package/utilities/index.js.flow +0 -1
- package/utilities/introspectionFromSchema.js +7 -5
- package/utilities/introspectionFromSchema.js.flow +2 -1
- package/utilities/introspectionFromSchema.mjs +3 -1
- package/utilities/lexicographicSortSchema.js +13 -9
- package/utilities/lexicographicSortSchema.js.flow +21 -13
- package/utilities/lexicographicSortSchema.mjs +5 -2
- package/utilities/printSchema.js +15 -16
- package/utilities/printSchema.js.flow +23 -16
- package/utilities/printSchema.mjs +5 -6
- package/utilities/separateOperations.js +46 -42
- package/utilities/separateOperations.js.flow +46 -37
- package/utilities/separateOperations.mjs +44 -40
- package/utilities/stripIgnoredCharacters.js +6 -16
- package/utilities/stripIgnoredCharacters.js.flow +4 -13
- package/utilities/stripIgnoredCharacters.mjs +3 -10
- package/utilities/typeComparators.js +1 -1
- package/utilities/typeComparators.js.flow +0 -1
- package/utilities/typeFromAST.js +6 -6
- package/utilities/typeFromAST.js.flow +2 -3
- package/utilities/typeFromAST.mjs +2 -2
- package/utilities/typedQueryDocumentNode.d.ts +20 -0
- package/utilities/valueFromAST.js +6 -6
- package/utilities/valueFromAST.js.flow +4 -2
- package/utilities/valueFromASTUntyped.js +4 -4
- package/utilities/valueFromASTUntyped.js.flow +0 -1
- package/validation/ValidationContext.js +3 -3
- package/validation/ValidationContext.js.flow +3 -4
- package/validation/index.js +38 -38
- package/validation/index.js.flow +0 -1
- package/validation/rules/ExecutableDefinitions.js +1 -1
- package/validation/rules/ExecutableDefinitions.js.flow +0 -1
- package/validation/rules/ExecutableDefinitionsRule.js +3 -3
- package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
- package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
- package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
- package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
- package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
- package/validation/rules/KnownArgumentNamesRule.js +5 -5
- package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
- package/validation/rules/KnownDirectivesRule.js +6 -6
- package/validation/rules/KnownDirectivesRule.js.flow +4 -3
- package/validation/rules/KnownFragmentNamesRule.js +1 -1
- package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
- package/validation/rules/KnownTypeNamesRule.js +6 -6
- package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
- package/validation/rules/LoneAnonymousOperationRule.js +2 -2
- package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
- package/validation/rules/LoneSchemaDefinition.js +1 -1
- package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
- package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
- package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
- package/validation/rules/NoFragmentCyclesRule.js +1 -1
- package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
- package/validation/rules/NoUndefinedVariablesRule.js +1 -1
- package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
- package/validation/rules/NoUnusedFragmentsRule.js +1 -1
- package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
- package/validation/rules/NoUnusedVariablesRule.js +1 -1
- package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
- package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
- package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
- package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
- package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
- package/validation/rules/PossibleTypeExtensions.js +1 -1
- package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
- package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
- package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
- package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
- package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
- package/validation/rules/ScalarLeafsRule.js +3 -3
- package/validation/rules/ScalarLeafsRule.js.flow +0 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
- package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
- package/validation/rules/UniqueArgumentNamesRule.js +1 -1
- package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNames.js +1 -1
- package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
- package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
- package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
- package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
- package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
- package/validation/rules/UniqueEnumValueNames.js +1 -1
- package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
- package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
- package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
- package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
- package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
- package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
- package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js +1 -1
- package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
- package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
- package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
- package/validation/rules/UniqueOperationNamesRule.js +1 -1
- package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
- package/validation/rules/UniqueOperationTypes.js +1 -1
- package/validation/rules/UniqueOperationTypes.js.flow +0 -1
- package/validation/rules/UniqueOperationTypesRule.js +1 -1
- package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
- package/validation/rules/UniqueTypeNames.js +1 -1
- package/validation/rules/UniqueTypeNames.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.js +2 -2
- package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
- package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
- package/validation/rules/UniqueVariableNamesRule.js +1 -1
- package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
- package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
- package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
- package/validation/rules/VariablesAreInputTypesRule.js +4 -4
- package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
- package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
- package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
- package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
- package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
- package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
- package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
- package/validation/specifiedRules.js +33 -33
- package/validation/specifiedRules.js.flow +0 -1
- package/validation/validate.js +7 -7
- package/validation/validate.js.flow +4 -5
- package/version.js +3 -3
- package/version.js.flow +3 -4
- package/version.mjs +3 -3
- package/jsutils/isCollection.js +0 -47
- package/jsutils/isCollection.js.flow +0 -39
- package/jsutils/isCollection.mjs +0 -40
- package/polyfills/flatMap.js +0 -30
- package/polyfills/flatMap.js.flow +0 -28
- package/polyfills/flatMap.mjs +0 -23
package/language/parser.mjs
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import inspect from "../jsutils/inspect.mjs";
|
|
2
|
-
import devAssert from "../jsutils/devAssert.mjs";
|
|
3
1
|
import { syntaxError } from "../error/syntaxError.mjs";
|
|
4
2
|
import { Kind } from "./kinds.mjs";
|
|
5
3
|
import { Location } from "./ast.mjs";
|
|
6
|
-
import { Source } from "./source.mjs";
|
|
7
4
|
import { TokenKind } from "./tokenKind.mjs";
|
|
5
|
+
import { Source, isSource } from "./source.mjs";
|
|
8
6
|
import { DirectiveLocation } from "./directiveLocation.mjs";
|
|
9
7
|
import { Lexer, isPunctuatorTokenKind } from "./lexer.mjs";
|
|
10
8
|
/**
|
|
@@ -55,11 +53,21 @@ export function parseType(source, options) {
|
|
|
55
53
|
parser.expectToken(TokenKind.EOF);
|
|
56
54
|
return type;
|
|
57
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* This class is exported only to assist people in implementing their own parsers
|
|
58
|
+
* without duplicating too much code and should be used only as last resort for cases
|
|
59
|
+
* such as experimental syntax or if certain features could not be contributed upstream.
|
|
60
|
+
*
|
|
61
|
+
* It is still part of the internal API and is versioned, so any changes to it are never
|
|
62
|
+
* considered breaking changes. If you still need to support multiple versions of the
|
|
63
|
+
* library, please use the `versionInfo` variable for version detection.
|
|
64
|
+
*
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
58
67
|
|
|
59
|
-
var Parser = /*#__PURE__*/function () {
|
|
68
|
+
export var Parser = /*#__PURE__*/function () {
|
|
60
69
|
function Parser(source, options) {
|
|
61
|
-
var sourceObj =
|
|
62
|
-
sourceObj instanceof Source || devAssert(0, "Must provide Source. Received: ".concat(inspect(sourceObj), "."));
|
|
70
|
+
var sourceObj = isSource(source) ? source : new Source(source);
|
|
63
71
|
this._lexer = new Lexer(sourceObj);
|
|
64
72
|
this._options = options;
|
|
65
73
|
}
|
|
@@ -804,21 +812,25 @@ var Parser = /*#__PURE__*/function () {
|
|
|
804
812
|
;
|
|
805
813
|
|
|
806
814
|
_proto.parseImplementsInterfaces = function parseImplementsInterfaces() {
|
|
807
|
-
var
|
|
815
|
+
var _this$_options2;
|
|
816
|
+
|
|
817
|
+
if (!this.expectOptionalKeyword('implements')) {
|
|
818
|
+
return [];
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {
|
|
822
|
+
var types = []; // Optional leading ampersand
|
|
808
823
|
|
|
809
|
-
if (this.expectOptionalKeyword('implements')) {
|
|
810
|
-
// Optional leading ampersand
|
|
811
824
|
this.expectOptionalToken(TokenKind.AMP);
|
|
812
825
|
|
|
813
826
|
do {
|
|
814
|
-
var _this$_options2;
|
|
815
|
-
|
|
816
827
|
types.push(this.parseNamedType());
|
|
817
|
-
} while (this.expectOptionalToken(TokenKind.AMP) ||
|
|
818
|
-
|
|
828
|
+
} while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));
|
|
829
|
+
|
|
830
|
+
return types;
|
|
819
831
|
}
|
|
820
832
|
|
|
821
|
-
return
|
|
833
|
+
return this.delimitedMany(TokenKind.AMP, this.parseNamedType);
|
|
822
834
|
}
|
|
823
835
|
/**
|
|
824
836
|
* FieldsDefinition : { FieldDefinition+ }
|
|
@@ -954,18 +966,7 @@ var Parser = /*#__PURE__*/function () {
|
|
|
954
966
|
;
|
|
955
967
|
|
|
956
968
|
_proto.parseUnionMemberTypes = function parseUnionMemberTypes() {
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
if (this.expectOptionalToken(TokenKind.EQUALS)) {
|
|
960
|
-
// Optional leading pipe
|
|
961
|
-
this.expectOptionalToken(TokenKind.PIPE);
|
|
962
|
-
|
|
963
|
-
do {
|
|
964
|
-
types.push(this.parseNamedType());
|
|
965
|
-
} while (this.expectOptionalToken(TokenKind.PIPE));
|
|
966
|
-
}
|
|
967
|
-
|
|
968
|
-
return types;
|
|
969
|
+
return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];
|
|
969
970
|
}
|
|
970
971
|
/**
|
|
971
972
|
* EnumTypeDefinition :
|
|
@@ -1316,15 +1317,7 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1316
1317
|
;
|
|
1317
1318
|
|
|
1318
1319
|
_proto.parseDirectiveLocations = function parseDirectiveLocations() {
|
|
1319
|
-
|
|
1320
|
-
this.expectOptionalToken(TokenKind.PIPE);
|
|
1321
|
-
var locations = [];
|
|
1322
|
-
|
|
1323
|
-
do {
|
|
1324
|
-
locations.push(this.parseDirectiveLocation());
|
|
1325
|
-
} while (this.expectOptionalToken(TokenKind.PIPE));
|
|
1326
|
-
|
|
1327
|
-
return locations;
|
|
1320
|
+
return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);
|
|
1328
1321
|
}
|
|
1329
1322
|
/*
|
|
1330
1323
|
* DirectiveLocation :
|
|
@@ -1367,8 +1360,7 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1367
1360
|
} // Core parsing utility functions
|
|
1368
1361
|
|
|
1369
1362
|
/**
|
|
1370
|
-
* Returns a location object, used to identify the place in
|
|
1371
|
-
* the source that created a given parsed object.
|
|
1363
|
+
* Returns a location object, used to identify the place in the source that created a given parsed object.
|
|
1372
1364
|
*/
|
|
1373
1365
|
;
|
|
1374
1366
|
|
|
@@ -1388,8 +1380,8 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1388
1380
|
return this._lexer.token.kind === kind;
|
|
1389
1381
|
}
|
|
1390
1382
|
/**
|
|
1391
|
-
* If the next token is of the given kind, return that token after advancing
|
|
1392
|
-
*
|
|
1383
|
+
* If the next token is of the given kind, return that token after advancing the lexer.
|
|
1384
|
+
* Otherwise, do not change the parser state and throw an error.
|
|
1393
1385
|
*/
|
|
1394
1386
|
;
|
|
1395
1387
|
|
|
@@ -1405,8 +1397,8 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1405
1397
|
throw syntaxError(this._lexer.source, token.start, "Expected ".concat(getTokenKindDesc(kind), ", found ").concat(getTokenDesc(token), "."));
|
|
1406
1398
|
}
|
|
1407
1399
|
/**
|
|
1408
|
-
* If the next token is of the given kind, return that token after advancing
|
|
1409
|
-
*
|
|
1400
|
+
* If the next token is of the given kind, return that token after advancing the lexer.
|
|
1401
|
+
* Otherwise, do not change the parser state and return undefined.
|
|
1410
1402
|
*/
|
|
1411
1403
|
;
|
|
1412
1404
|
|
|
@@ -1437,8 +1429,8 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1437
1429
|
}
|
|
1438
1430
|
}
|
|
1439
1431
|
/**
|
|
1440
|
-
* If the next token is a given keyword, return "true" after advancing
|
|
1441
|
-
*
|
|
1432
|
+
* If the next token is a given keyword, return "true" after advancing the lexer.
|
|
1433
|
+
* Otherwise, do not change the parser state and return "false".
|
|
1442
1434
|
*/
|
|
1443
1435
|
;
|
|
1444
1436
|
|
|
@@ -1454,8 +1446,7 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1454
1446
|
return false;
|
|
1455
1447
|
}
|
|
1456
1448
|
/**
|
|
1457
|
-
* Helper function for creating an error when an unexpected lexed token
|
|
1458
|
-
* is encountered.
|
|
1449
|
+
* Helper function for creating an error when an unexpected lexed token is encountered.
|
|
1459
1450
|
*/
|
|
1460
1451
|
;
|
|
1461
1452
|
|
|
@@ -1464,10 +1455,9 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1464
1455
|
return syntaxError(this._lexer.source, token.start, "Unexpected ".concat(getTokenDesc(token), "."));
|
|
1465
1456
|
}
|
|
1466
1457
|
/**
|
|
1467
|
-
* Returns a possibly empty list of parse nodes, determined by
|
|
1468
|
-
*
|
|
1469
|
-
*
|
|
1470
|
-
* to the next lex token after the closing token.
|
|
1458
|
+
* Returns a possibly empty list of parse nodes, determined by the parseFn.
|
|
1459
|
+
* This list begins with a lex token of openKind and ends with a lex token of closeKind.
|
|
1460
|
+
* Advances the parser to the next lex token after the closing token.
|
|
1471
1461
|
*/
|
|
1472
1462
|
;
|
|
1473
1463
|
|
|
@@ -1483,10 +1473,9 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1483
1473
|
}
|
|
1484
1474
|
/**
|
|
1485
1475
|
* Returns a list of parse nodes, determined by the parseFn.
|
|
1486
|
-
* It can be empty only if open token is missing otherwise it will always
|
|
1487
|
-
*
|
|
1488
|
-
*
|
|
1489
|
-
* after the closing token.
|
|
1476
|
+
* It can be empty only if open token is missing otherwise it will always return non-empty list
|
|
1477
|
+
* that begins with a lex token of openKind and ends with a lex token of closeKind.
|
|
1478
|
+
* Advances the parser to the next lex token after the closing token.
|
|
1490
1479
|
*/
|
|
1491
1480
|
;
|
|
1492
1481
|
|
|
@@ -1504,10 +1493,9 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1504
1493
|
return [];
|
|
1505
1494
|
}
|
|
1506
1495
|
/**
|
|
1507
|
-
* Returns a non-empty list of parse nodes, determined by
|
|
1508
|
-
*
|
|
1509
|
-
*
|
|
1510
|
-
* to the next lex token after the closing token.
|
|
1496
|
+
* Returns a non-empty list of parse nodes, determined by the parseFn.
|
|
1497
|
+
* This list begins with a lex token of openKind and ends with a lex token of closeKind.
|
|
1498
|
+
* Advances the parser to the next lex token after the closing token.
|
|
1511
1499
|
*/
|
|
1512
1500
|
;
|
|
1513
1501
|
|
|
@@ -1519,22 +1507,38 @@ var Parser = /*#__PURE__*/function () {
|
|
|
1519
1507
|
nodes.push(parseFn.call(this));
|
|
1520
1508
|
} while (!this.expectOptionalToken(closeKind));
|
|
1521
1509
|
|
|
1510
|
+
return nodes;
|
|
1511
|
+
}
|
|
1512
|
+
/**
|
|
1513
|
+
* Returns a non-empty list of parse nodes, determined by the parseFn.
|
|
1514
|
+
* This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.
|
|
1515
|
+
* Advances the parser to the next lex token after last item in the list.
|
|
1516
|
+
*/
|
|
1517
|
+
;
|
|
1518
|
+
|
|
1519
|
+
_proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {
|
|
1520
|
+
this.expectOptionalToken(delimiterKind);
|
|
1521
|
+
var nodes = [];
|
|
1522
|
+
|
|
1523
|
+
do {
|
|
1524
|
+
nodes.push(parseFn.call(this));
|
|
1525
|
+
} while (this.expectOptionalToken(delimiterKind));
|
|
1526
|
+
|
|
1522
1527
|
return nodes;
|
|
1523
1528
|
};
|
|
1524
1529
|
|
|
1525
1530
|
return Parser;
|
|
1526
1531
|
}();
|
|
1527
1532
|
/**
|
|
1528
|
-
* A helper function to describe a token as a string for debugging
|
|
1533
|
+
* A helper function to describe a token as a string for debugging.
|
|
1529
1534
|
*/
|
|
1530
1535
|
|
|
1531
|
-
|
|
1532
1536
|
function getTokenDesc(token) {
|
|
1533
1537
|
var value = token.value;
|
|
1534
1538
|
return getTokenKindDesc(token.kind) + (value != null ? " \"".concat(value, "\"") : '');
|
|
1535
1539
|
}
|
|
1536
1540
|
/**
|
|
1537
|
-
* A helper function to describe a token kind as a string for debugging
|
|
1541
|
+
* A helper function to describe a token kind as a string for debugging.
|
|
1538
1542
|
*/
|
|
1539
1543
|
|
|
1540
1544
|
|
package/language/predicates.js
CHANGED
|
@@ -13,7 +13,7 @@ exports.isTypeDefinitionNode = isTypeDefinitionNode;
|
|
|
13
13
|
exports.isTypeSystemExtensionNode = isTypeSystemExtensionNode;
|
|
14
14
|
exports.isTypeExtensionNode = isTypeExtensionNode;
|
|
15
15
|
|
|
16
|
-
var _kinds = require("./kinds");
|
|
16
|
+
var _kinds = require("./kinds.js");
|
|
17
17
|
|
|
18
18
|
function isDefinitionNode(node) {
|
|
19
19
|
return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node);
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.printLocation = printLocation;
|
|
7
7
|
exports.printSourceLocation = printSourceLocation;
|
|
8
8
|
|
|
9
|
-
var _location = require("./location");
|
|
9
|
+
var _location = require("./location.js");
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Render a helpful description of the location in the GraphQL Source document.
|
package/language/printer.js
CHANGED
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.print = print;
|
|
7
7
|
|
|
8
|
-
var _visitor = require("./visitor");
|
|
8
|
+
var _visitor = require("./visitor.js");
|
|
9
9
|
|
|
10
|
-
var _blockString = require("./blockString");
|
|
10
|
+
var _blockString = require("./blockString.js");
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Converts an AST into a string, using one set of reasonable
|
|
@@ -17,8 +17,9 @@ function print(ast) {
|
|
|
17
17
|
return (0, _visitor.visit)(ast, {
|
|
18
18
|
leave: printDocASTReducer
|
|
19
19
|
});
|
|
20
|
-
}
|
|
20
|
+
}
|
|
21
21
|
|
|
22
|
+
var MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future
|
|
22
23
|
|
|
23
24
|
var printDocASTReducer = {
|
|
24
25
|
Name: function Name(node) {
|
|
@@ -58,7 +59,14 @@ var printDocASTReducer = {
|
|
|
58
59
|
args = _ref3.arguments,
|
|
59
60
|
directives = _ref3.directives,
|
|
60
61
|
selectionSet = _ref3.selectionSet;
|
|
61
|
-
|
|
62
|
+
var prefix = wrap('', alias, ': ') + name;
|
|
63
|
+
var argsLine = prefix + wrap('(', join(args, ', '), ')');
|
|
64
|
+
|
|
65
|
+
if (argsLine.length > MAX_LINE_LENGTH) {
|
|
66
|
+
argsLine = prefix + wrap('(\n', indent(join(args, '\n')), '\n)');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return join([argsLine, join(directives, ' '), selectionSet], ' ');
|
|
62
70
|
},
|
|
63
71
|
Argument: function Argument(_ref4) {
|
|
64
72
|
var name = _ref4.name,
|
|
@@ -289,27 +297,26 @@ function join(maybeArray) {
|
|
|
289
297
|
|
|
290
298
|
|
|
291
299
|
function block(array) {
|
|
292
|
-
return
|
|
300
|
+
return wrap('{\n', indent(join(array, '\n')), '\n}');
|
|
293
301
|
}
|
|
294
302
|
/**
|
|
295
|
-
* If maybeString is not null or empty, then wrap with start and end, otherwise
|
|
296
|
-
* print an empty string.
|
|
303
|
+
* If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.
|
|
297
304
|
*/
|
|
298
305
|
|
|
299
306
|
|
|
300
307
|
function wrap(start, maybeString) {
|
|
301
308
|
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
302
|
-
return maybeString ? start + maybeString + end : '';
|
|
309
|
+
return maybeString != null && maybeString !== '' ? start + maybeString + end : '';
|
|
303
310
|
}
|
|
304
311
|
|
|
305
|
-
function indent(
|
|
306
|
-
return
|
|
312
|
+
function indent(str) {
|
|
313
|
+
return wrap(' ', str.replace(/\n/g, '\n '));
|
|
307
314
|
}
|
|
308
315
|
|
|
309
|
-
function isMultiline(
|
|
310
|
-
return
|
|
316
|
+
function isMultiline(str) {
|
|
317
|
+
return str.indexOf('\n') !== -1;
|
|
311
318
|
}
|
|
312
319
|
|
|
313
320
|
function hasMultilineItems(maybeArray) {
|
|
314
|
-
return maybeArray && maybeArray.some(isMultiline);
|
|
321
|
+
return maybeArray != null && maybeArray.some(isMultiline);
|
|
315
322
|
}
|
package/language/printer.js.flow
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import type { ASTNode } from './ast';
|
|
4
3
|
|
|
5
4
|
import { visit } from './visitor';
|
|
@@ -13,6 +12,8 @@ export function print(ast: ASTNode): string {
|
|
|
13
12
|
return visit(ast, { leave: printDocASTReducer });
|
|
14
13
|
}
|
|
15
14
|
|
|
15
|
+
const MAX_LINE_LENGTH = 80;
|
|
16
|
+
|
|
16
17
|
// TODO: provide better type coverage in future
|
|
17
18
|
const printDocASTReducer: any = {
|
|
18
19
|
Name: (node) => node.value,
|
|
@@ -43,15 +44,16 @@ const printDocASTReducer: any = {
|
|
|
43
44
|
wrap(' ', join(directives, ' ')),
|
|
44
45
|
SelectionSet: ({ selections }) => block(selections),
|
|
45
46
|
|
|
46
|
-
Field: ({ alias, name, arguments: args, directives, selectionSet }) =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
),
|
|
47
|
+
Field: ({ alias, name, arguments: args, directives, selectionSet }) => {
|
|
48
|
+
const prefix = wrap('', alias, ': ') + name;
|
|
49
|
+
let argsLine = prefix + wrap('(', join(args, ', '), ')');
|
|
50
|
+
|
|
51
|
+
if (argsLine.length > MAX_LINE_LENGTH) {
|
|
52
|
+
argsLine = prefix + wrap('(\n', indent(join(args, '\n')), '\n)');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return join([argsLine, join(directives, ' '), selectionSet], ' ');
|
|
56
|
+
},
|
|
55
57
|
|
|
56
58
|
Argument: ({ name, value }) => name + ': ' + value,
|
|
57
59
|
|
|
@@ -256,7 +258,7 @@ function addDescription(cb) {
|
|
|
256
258
|
* Given maybeArray, print an empty string if it is null or empty, otherwise
|
|
257
259
|
* print all items together separated by separator if provided
|
|
258
260
|
*/
|
|
259
|
-
function join(maybeArray: ?Array<string>, separator = '') {
|
|
261
|
+
function join(maybeArray: ?Array<string>, separator = ''): string {
|
|
260
262
|
return maybeArray?.filter((x) => x).join(separator) ?? '';
|
|
261
263
|
}
|
|
262
264
|
|
|
@@ -264,28 +266,27 @@ function join(maybeArray: ?Array<string>, separator = '') {
|
|
|
264
266
|
* Given array, print each item on its own line, wrapped in an
|
|
265
267
|
* indented "{ }" block.
|
|
266
268
|
*/
|
|
267
|
-
function block(array) {
|
|
268
|
-
return
|
|
269
|
-
? '{\n' + indent(join(array, '\n')) + '\n}'
|
|
270
|
-
: '';
|
|
269
|
+
function block(array: ?Array<string>): string {
|
|
270
|
+
return wrap('{\n', indent(join(array, '\n')), '\n}');
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
/**
|
|
274
|
-
* If maybeString is not null or empty, then wrap with start and end, otherwise
|
|
275
|
-
* print an empty string.
|
|
274
|
+
* If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.
|
|
276
275
|
*/
|
|
277
|
-
function wrap(start, maybeString, end = '') {
|
|
278
|
-
return maybeString
|
|
276
|
+
function wrap(start: string, maybeString: ?string, end: string = ''): string {
|
|
277
|
+
return maybeString != null && maybeString !== ''
|
|
278
|
+
? start + maybeString + end
|
|
279
|
+
: '';
|
|
279
280
|
}
|
|
280
281
|
|
|
281
|
-
function indent(
|
|
282
|
-
return
|
|
282
|
+
function indent(str: string): string {
|
|
283
|
+
return wrap(' ', str.replace(/\n/g, '\n '));
|
|
283
284
|
}
|
|
284
285
|
|
|
285
|
-
function isMultiline(string) {
|
|
286
|
-
return
|
|
286
|
+
function isMultiline(str: string): boolean {
|
|
287
|
+
return str.indexOf('\n') !== -1;
|
|
287
288
|
}
|
|
288
289
|
|
|
289
|
-
function hasMultilineItems(maybeArray) {
|
|
290
|
-
return maybeArray && maybeArray.some(isMultiline);
|
|
290
|
+
function hasMultilineItems(maybeArray: ?Array<string>): boolean {
|
|
291
|
+
return maybeArray != null && maybeArray.some(isMultiline);
|
|
291
292
|
}
|
package/language/printer.mjs
CHANGED
|
@@ -9,7 +9,8 @@ export function print(ast) {
|
|
|
9
9
|
return visit(ast, {
|
|
10
10
|
leave: printDocASTReducer
|
|
11
11
|
});
|
|
12
|
-
}
|
|
12
|
+
}
|
|
13
|
+
var MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future
|
|
13
14
|
|
|
14
15
|
var printDocASTReducer = {
|
|
15
16
|
Name: function Name(node) {
|
|
@@ -49,7 +50,14 @@ var printDocASTReducer = {
|
|
|
49
50
|
args = _ref3.arguments,
|
|
50
51
|
directives = _ref3.directives,
|
|
51
52
|
selectionSet = _ref3.selectionSet;
|
|
52
|
-
|
|
53
|
+
var prefix = wrap('', alias, ': ') + name;
|
|
54
|
+
var argsLine = prefix + wrap('(', join(args, ', '), ')');
|
|
55
|
+
|
|
56
|
+
if (argsLine.length > MAX_LINE_LENGTH) {
|
|
57
|
+
argsLine = prefix + wrap('(\n', indent(join(args, '\n')), '\n)');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return join([argsLine, join(directives, ' '), selectionSet], ' ');
|
|
53
61
|
},
|
|
54
62
|
Argument: function Argument(_ref4) {
|
|
55
63
|
var name = _ref4.name,
|
|
@@ -280,27 +288,26 @@ function join(maybeArray) {
|
|
|
280
288
|
|
|
281
289
|
|
|
282
290
|
function block(array) {
|
|
283
|
-
return
|
|
291
|
+
return wrap('{\n', indent(join(array, '\n')), '\n}');
|
|
284
292
|
}
|
|
285
293
|
/**
|
|
286
|
-
* If maybeString is not null or empty, then wrap with start and end, otherwise
|
|
287
|
-
* print an empty string.
|
|
294
|
+
* If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.
|
|
288
295
|
*/
|
|
289
296
|
|
|
290
297
|
|
|
291
298
|
function wrap(start, maybeString) {
|
|
292
299
|
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
293
|
-
return maybeString ? start + maybeString + end : '';
|
|
300
|
+
return maybeString != null && maybeString !== '' ? start + maybeString + end : '';
|
|
294
301
|
}
|
|
295
302
|
|
|
296
|
-
function indent(
|
|
297
|
-
return
|
|
303
|
+
function indent(str) {
|
|
304
|
+
return wrap(' ', str.replace(/\n/g, '\n '));
|
|
298
305
|
}
|
|
299
306
|
|
|
300
|
-
function isMultiline(
|
|
301
|
-
return
|
|
307
|
+
function isMultiline(str) {
|
|
308
|
+
return str.indexOf('\n') !== -1;
|
|
302
309
|
}
|
|
303
310
|
|
|
304
311
|
function hasMultilineItems(maybeArray) {
|
|
305
|
-
return maybeArray && maybeArray.some(isMultiline);
|
|
312
|
+
return maybeArray != null && maybeArray.some(isMultiline);
|
|
306
313
|
}
|
package/language/source.d.ts
CHANGED
|
@@ -16,3 +16,10 @@ export class Source {
|
|
|
16
16
|
locationOffset: Location;
|
|
17
17
|
constructor(body: string, name?: string, locationOffset?: Location);
|
|
18
18
|
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Test if the given value is a Source object.
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export function isSource(source: any): source is Source;
|
package/language/source.js
CHANGED
|
@@ -3,11 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.isSource = isSource;
|
|
6
7
|
exports.Source = void 0;
|
|
7
8
|
|
|
8
|
-
var _symbols = require("../polyfills/symbols");
|
|
9
|
+
var _symbols = require("../polyfills/symbols.js");
|
|
9
10
|
|
|
10
|
-
var
|
|
11
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
12
|
+
|
|
13
|
+
var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
|
|
14
|
+
|
|
15
|
+
var _instanceOf = _interopRequireDefault(require("../jsutils/instanceOf.js"));
|
|
11
16
|
|
|
12
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
18
|
|
|
@@ -29,12 +34,13 @@ var Source = /*#__PURE__*/function () {
|
|
|
29
34
|
line: 1,
|
|
30
35
|
column: 1
|
|
31
36
|
};
|
|
37
|
+
typeof body === 'string' || (0, _devAssert.default)(0, "Body must be a string. Received: ".concat((0, _inspect.default)(body), "."));
|
|
32
38
|
this.body = body;
|
|
33
39
|
this.name = name;
|
|
34
40
|
this.locationOffset = locationOffset;
|
|
35
41
|
this.locationOffset.line > 0 || (0, _devAssert.default)(0, 'line in locationOffset is 1-indexed and must be positive.');
|
|
36
42
|
this.locationOffset.column > 0 || (0, _devAssert.default)(0, 'column in locationOffset is 1-indexed and must be positive.');
|
|
37
|
-
} // $FlowFixMe Flow doesn't support computed properties yet
|
|
43
|
+
} // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
38
44
|
|
|
39
45
|
|
|
40
46
|
_createClass(Source, [{
|
|
@@ -46,5 +52,16 @@ var Source = /*#__PURE__*/function () {
|
|
|
46
52
|
|
|
47
53
|
return Source;
|
|
48
54
|
}();
|
|
55
|
+
/**
|
|
56
|
+
* Test if the given value is a Source object.
|
|
57
|
+
*
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
|
|
49
61
|
|
|
50
62
|
exports.Source = Source;
|
|
63
|
+
|
|
64
|
+
// eslint-disable-next-line no-redeclare
|
|
65
|
+
function isSource(source) {
|
|
66
|
+
return (0, _instanceOf.default)(source, Source);
|
|
67
|
+
}
|
package/language/source.js.flow
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import { SYMBOL_TO_STRING_TAG } from '../polyfills/symbols';
|
|
4
3
|
|
|
4
|
+
import inspect from '../jsutils/inspect';
|
|
5
5
|
import devAssert from '../jsutils/devAssert';
|
|
6
|
+
import instanceOf from '../jsutils/instanceOf';
|
|
6
7
|
|
|
7
8
|
type Location = {|
|
|
8
9
|
line: number,
|
|
@@ -25,7 +26,12 @@ export class Source {
|
|
|
25
26
|
body: string,
|
|
26
27
|
name: string = 'GraphQL request',
|
|
27
28
|
locationOffset: Location = { line: 1, column: 1 },
|
|
28
|
-
)
|
|
29
|
+
) {
|
|
30
|
+
devAssert(
|
|
31
|
+
typeof body === 'string',
|
|
32
|
+
`Body must be a string. Received: ${inspect(body)}.`,
|
|
33
|
+
);
|
|
34
|
+
|
|
29
35
|
this.body = body;
|
|
30
36
|
this.name = name;
|
|
31
37
|
this.locationOffset = locationOffset;
|
|
@@ -39,8 +45,20 @@ export class Source {
|
|
|
39
45
|
);
|
|
40
46
|
}
|
|
41
47
|
|
|
42
|
-
// $FlowFixMe Flow doesn't support computed properties yet
|
|
48
|
+
// $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
43
49
|
get [SYMBOL_TO_STRING_TAG]() {
|
|
44
50
|
return 'Source';
|
|
45
51
|
}
|
|
46
52
|
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Test if the given value is a Source object.
|
|
56
|
+
*
|
|
57
|
+
* @internal
|
|
58
|
+
*/
|
|
59
|
+
declare function isSource(source: mixed): boolean %checks(source instanceof
|
|
60
|
+
Source);
|
|
61
|
+
// eslint-disable-next-line no-redeclare
|
|
62
|
+
export function isSource(source) {
|
|
63
|
+
return instanceOf(source, Source);
|
|
64
|
+
}
|
package/language/source.mjs
CHANGED
|
@@ -3,7 +3,9 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
|
3
3
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
4
4
|
|
|
5
5
|
import { SYMBOL_TO_STRING_TAG } from "../polyfills/symbols.mjs";
|
|
6
|
+
import inspect from "../jsutils/inspect.mjs";
|
|
6
7
|
import devAssert from "../jsutils/devAssert.mjs";
|
|
8
|
+
import instanceOf from "../jsutils/instanceOf.mjs";
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* A representation of source input to GraphQL. The `name` and `locationOffset` parameters are
|
|
@@ -19,12 +21,13 @@ export var Source = /*#__PURE__*/function () {
|
|
|
19
21
|
line: 1,
|
|
20
22
|
column: 1
|
|
21
23
|
};
|
|
24
|
+
typeof body === 'string' || devAssert(0, "Body must be a string. Received: ".concat(inspect(body), "."));
|
|
22
25
|
this.body = body;
|
|
23
26
|
this.name = name;
|
|
24
27
|
this.locationOffset = locationOffset;
|
|
25
28
|
this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');
|
|
26
29
|
this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');
|
|
27
|
-
} // $FlowFixMe Flow doesn't support computed properties yet
|
|
30
|
+
} // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
_createClass(Source, [{
|
|
@@ -36,3 +39,13 @@ export var Source = /*#__PURE__*/function () {
|
|
|
36
39
|
|
|
37
40
|
return Source;
|
|
38
41
|
}();
|
|
42
|
+
/**
|
|
43
|
+
* Test if the given value is a Source object.
|
|
44
|
+
*
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
// eslint-disable-next-line no-redeclare
|
|
49
|
+
export function isSource(source) {
|
|
50
|
+
return instanceOf(source, Source);
|
|
51
|
+
}
|
package/language/visitor.js
CHANGED
|
@@ -8,9 +8,9 @@ exports.visitInParallel = visitInParallel;
|
|
|
8
8
|
exports.getVisitFn = getVisitFn;
|
|
9
9
|
exports.BREAK = exports.QueryDocumentKeys = void 0;
|
|
10
10
|
|
|
11
|
-
var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
|
|
11
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
12
12
|
|
|
13
|
-
var _ast = require("./ast");
|
|
13
|
+
var _ast = require("./ast.js");
|
|
14
14
|
|
|
15
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
16
|
|