graphql 15.2.0 → 15.5.0
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 +19 -10
- 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 +11 -15
- package/execution/execute.js +110 -110
- package/execution/execute.js.flow +132 -139
- package/execution/execute.mjs +92 -88
- package/execution/index.d.ts +1 -0
- package/execution/index.js +3 -3
- package/execution/index.js.flow +6 -2
- 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 +2 -0
- package/index.js +9 -9
- package/index.js.flow +5 -2
- 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.flow +2 -3
- 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 +12 -6
- package/language/source.js +25 -9
- package/language/source.js.flow +26 -9
- package/language/source.mjs +19 -7
- package/language/tokenKind.js.flow +0 -1
- package/language/visitor.d.ts +3 -3
- package/language/visitor.js +5 -5
- package/language/visitor.js.flow +3 -4
- package/language/visitor.mjs +3 -3
- 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 +17 -9
- 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 +2 -2
- package/version.js.flow +2 -3
- package/version.mjs +2 -2
- 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
|
@@ -6,25 +6,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.subscribe = subscribe;
|
|
7
7
|
exports.createSourceEventStream = createSourceEventStream;
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _isAsyncIterable = _interopRequireDefault(require("../jsutils/isAsyncIterable.js"));
|
|
12
12
|
|
|
13
|
-
var _Path = require("../jsutils/Path");
|
|
13
|
+
var _Path = require("../jsutils/Path.js");
|
|
14
14
|
|
|
15
|
-
var _GraphQLError = require("../error/GraphQLError");
|
|
15
|
+
var _GraphQLError = require("../error/GraphQLError.js");
|
|
16
16
|
|
|
17
|
-
var _locatedError = require("../error/locatedError");
|
|
17
|
+
var _locatedError = require("../error/locatedError.js");
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _values = require("../execution/values.js");
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _execute = require("../execution/execute.js");
|
|
22
22
|
|
|
23
|
-
var
|
|
23
|
+
var _getOperationRootType = require("../utilities/getOperationRootType.js");
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
var _mapAsyncIterator = _interopRequireDefault(require("./mapAsyncIterator.js"));
|
|
26
26
|
|
|
27
|
-
function
|
|
27
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
28
28
|
|
|
29
29
|
function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
|
|
30
30
|
/* eslint-enable no-redeclare */
|
|
@@ -89,7 +89,7 @@ function subscribeImpl(args) {
|
|
|
89
89
|
|
|
90
90
|
return sourcePromise.then(function (resultOrStream) {
|
|
91
91
|
return (// Note: Flow can't refine isAsyncIterable, so explicit casts are used.
|
|
92
|
-
|
|
92
|
+
(0, _isAsyncIterable.default)(resultOrStream) ? (0, _mapAsyncIterator.default)(resultOrStream, mapSourceToResponse, reportGraphQLError) : resultOrStream
|
|
93
93
|
);
|
|
94
94
|
});
|
|
95
95
|
}
|
|
@@ -127,78 +127,66 @@ function createSourceEventStream(schema, document, rootValue, contextValue, vari
|
|
|
127
127
|
// If arguments are missing or incorrectly typed, this is an internal
|
|
128
128
|
// developer mistake which should throw an early error.
|
|
129
129
|
(0, _execute.assertValidExecutionArguments)(schema, document, variableValues);
|
|
130
|
-
|
|
131
|
-
try {
|
|
132
|
-
var _fieldDef$subscribe;
|
|
133
|
-
|
|
130
|
+
return new Promise(function (resolve) {
|
|
134
131
|
// If a valid context cannot be created due to incorrect arguments,
|
|
135
132
|
// this will throw an error.
|
|
136
|
-
var exeContext = (0, _execute.buildExecutionContext)(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
133
|
+
var exeContext = (0, _execute.buildExecutionContext)(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
|
|
134
|
+
resolve( // Return early errors if execution context failed.
|
|
135
|
+
Array.isArray(exeContext) ? {
|
|
136
|
+
errors: exeContext
|
|
137
|
+
} : executeSubscription(exeContext));
|
|
138
|
+
}).catch(reportGraphQLError);
|
|
139
|
+
}
|
|
143
140
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
141
|
+
function executeSubscription(exeContext) {
|
|
142
|
+
var schema = exeContext.schema,
|
|
143
|
+
operation = exeContext.operation,
|
|
144
|
+
variableValues = exeContext.variableValues,
|
|
145
|
+
rootValue = exeContext.rootValue;
|
|
146
|
+
var type = (0, _getOperationRootType.getOperationRootType)(schema, operation);
|
|
147
|
+
var fields = (0, _execute.collectFields)(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));
|
|
148
|
+
var responseNames = Object.keys(fields);
|
|
149
|
+
var responseName = responseNames[0];
|
|
150
|
+
var fieldNodes = fields[responseName];
|
|
151
|
+
var fieldNode = fieldNodes[0];
|
|
152
|
+
var fieldName = fieldNode.name.value;
|
|
153
|
+
var fieldDef = (0, _execute.getFieldDef)(schema, type, fieldName);
|
|
154
|
+
|
|
155
|
+
if (!fieldDef) {
|
|
156
|
+
throw new _GraphQLError.GraphQLError("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes);
|
|
157
|
+
}
|
|
157
158
|
|
|
159
|
+
var path = (0, _Path.addPath)(undefined, responseName, type.name);
|
|
160
|
+
var info = (0, _execute.buildResolveInfo)(exeContext, fieldDef, fieldNodes, type, path); // Coerce to Promise for easier error handling and consistent return type.
|
|
158
161
|
|
|
159
|
-
|
|
160
|
-
var
|
|
161
|
-
var info = (0, _execute.buildResolveInfo)(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the "ResolveFieldEventStream"
|
|
162
|
-
// algorithm from GraphQL specification. It differs from
|
|
163
|
-
// "ResolveFieldValue" due to providing a different `resolveFn`.
|
|
162
|
+
return new Promise(function (resolveResult) {
|
|
163
|
+
var _fieldDef$subscribe;
|
|
164
164
|
|
|
165
|
-
|
|
165
|
+
// Implements the "ResolveFieldEventStream" algorithm from GraphQL specification.
|
|
166
|
+
// It differs from "ResolveFieldValue" due to providing a different `resolveFn`.
|
|
167
|
+
// Build a JS object of arguments from the field.arguments AST, using the
|
|
168
|
+
// variables scope to fulfill any variable references.
|
|
169
|
+
var args = (0, _values.getArgumentValues)(fieldDef, fieldNodes[0], variableValues); // The resolve function's optional third argument is a context value that
|
|
170
|
+
// is provided to every resolve function within an execution. It is commonly
|
|
171
|
+
// used to represent an authenticated user, or request-specific caches.
|
|
166
172
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
if (eventStream instanceof Error) {
|
|
170
|
-
return {
|
|
171
|
-
errors: [(0, _locatedError.locatedError)(eventStream, fieldNodes, (0, _Path.pathToArray)(path))]
|
|
172
|
-
};
|
|
173
|
-
} // Assert field returned an event stream, otherwise yield an error.
|
|
173
|
+
var contextValue = exeContext.contextValue; // Call the `subscribe()` resolver or the default resolver to produce an
|
|
174
|
+
// AsyncIterable yielding raw payloads.
|
|
174
175
|
|
|
176
|
+
var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;
|
|
177
|
+
resolveResult(resolveFn(rootValue, args, contextValue, info));
|
|
178
|
+
}).then(function (eventStream) {
|
|
179
|
+
if (eventStream instanceof Error) {
|
|
180
|
+
throw (0, _locatedError.locatedError)(eventStream, fieldNodes, (0, _Path.pathToArray)(path));
|
|
181
|
+
} // Assert field returned an event stream, otherwise yield an error.
|
|
175
182
|
|
|
176
|
-
if (isAsyncIterable(eventStream)) {
|
|
177
|
-
// Note: isAsyncIterable above ensures this will be correct.
|
|
178
|
-
return eventStream;
|
|
179
|
-
}
|
|
180
183
|
|
|
184
|
+
if (!(0, _isAsyncIterable.default)(eventStream)) {
|
|
181
185
|
throw new Error('Subscription field must return Async Iterable. ' + "Received: ".concat((0, _inspect.default)(eventStream), "."));
|
|
182
|
-
}
|
|
183
|
-
} catch (error) {
|
|
184
|
-
// As with reportGraphQLError above, if the error is a GraphQLError, report
|
|
185
|
-
// it as an ExecutionResult; otherwise treat it as a system-class error and
|
|
186
|
-
// re-throw it.
|
|
187
|
-
return error instanceof _GraphQLError.GraphQLError ? Promise.resolve({
|
|
188
|
-
errors: [error]
|
|
189
|
-
}) : Promise.reject(error);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Returns true if the provided object implements the AsyncIterator protocol via
|
|
194
|
-
* either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
|
|
195
|
-
*/
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
function isAsyncIterable(maybeAsyncIterable) {
|
|
199
|
-
if (maybeAsyncIterable == null || _typeof(maybeAsyncIterable) !== 'object') {
|
|
200
|
-
return false;
|
|
201
|
-
}
|
|
186
|
+
}
|
|
202
187
|
|
|
203
|
-
|
|
188
|
+
return eventStream;
|
|
189
|
+
}, function (error) {
|
|
190
|
+
throw (0, _locatedError.locatedError)(error, fieldNodes, (0, _Path.pathToArray)(path));
|
|
191
|
+
});
|
|
204
192
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
|
-
import { SYMBOL_ASYNC_ITERATOR } from '../polyfills/symbols';
|
|
4
|
-
|
|
5
2
|
import inspect from '../jsutils/inspect';
|
|
3
|
+
import isAsyncIterable from '../jsutils/isAsyncIterable';
|
|
6
4
|
import { addPath, pathToArray } from '../jsutils/Path';
|
|
7
5
|
|
|
8
6
|
import { GraphQLError } from '../error/GraphQLError';
|
|
@@ -10,7 +8,8 @@ import { locatedError } from '../error/locatedError';
|
|
|
10
8
|
|
|
11
9
|
import type { DocumentNode } from '../language/ast';
|
|
12
10
|
|
|
13
|
-
import type { ExecutionResult } from '../execution/execute';
|
|
11
|
+
import type { ExecutionResult, ExecutionContext } from '../execution/execute';
|
|
12
|
+
import { getArgumentValues } from '../execution/values';
|
|
14
13
|
import {
|
|
15
14
|
assertValidExecutionArguments,
|
|
16
15
|
buildExecutionContext,
|
|
@@ -18,7 +17,6 @@ import {
|
|
|
18
17
|
collectFields,
|
|
19
18
|
execute,
|
|
20
19
|
getFieldDef,
|
|
21
|
-
resolveFieldValueOrError,
|
|
22
20
|
} from '../execution/execute';
|
|
23
21
|
|
|
24
22
|
import type { GraphQLSchema } from '../type/schema';
|
|
@@ -63,7 +61,7 @@ export type SubscriptionArgs = {|
|
|
|
63
61
|
declare function subscribe(
|
|
64
62
|
SubscriptionArgs,
|
|
65
63
|
..._: []
|
|
66
|
-
): Promise<
|
|
64
|
+
): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult>;
|
|
67
65
|
/* eslint-disable no-redeclare */
|
|
68
66
|
declare function subscribe(
|
|
69
67
|
schema: GraphQLSchema,
|
|
@@ -106,7 +104,7 @@ export function subscribe(
|
|
|
106
104
|
* an ExecutionResult, containing only errors and no data. Otherwise treat the
|
|
107
105
|
* error as a system-class error and re-throw it.
|
|
108
106
|
*/
|
|
109
|
-
function reportGraphQLError(error) {
|
|
107
|
+
function reportGraphQLError(error: mixed): ExecutionResult {
|
|
110
108
|
if (error instanceof GraphQLError) {
|
|
111
109
|
return { errors: [error] };
|
|
112
110
|
}
|
|
@@ -115,7 +113,7 @@ function reportGraphQLError(error) {
|
|
|
115
113
|
|
|
116
114
|
function subscribeImpl(
|
|
117
115
|
args: SubscriptionArgs,
|
|
118
|
-
): Promise<
|
|
116
|
+
): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult> {
|
|
119
117
|
const {
|
|
120
118
|
schema,
|
|
121
119
|
document,
|
|
@@ -160,7 +158,7 @@ function subscribeImpl(
|
|
|
160
158
|
// Note: Flow can't refine isAsyncIterable, so explicit casts are used.
|
|
161
159
|
isAsyncIterable(resultOrStream)
|
|
162
160
|
? mapAsyncIterator(
|
|
163
|
-
|
|
161
|
+
resultOrStream,
|
|
164
162
|
mapSourceToResponse,
|
|
165
163
|
reportGraphQLError,
|
|
166
164
|
)
|
|
@@ -209,7 +207,7 @@ export function createSourceEventStream(
|
|
|
209
207
|
// developer mistake which should throw an early error.
|
|
210
208
|
assertValidExecutionArguments(schema, document, variableValues);
|
|
211
209
|
|
|
212
|
-
|
|
210
|
+
return new Promise((resolve) => {
|
|
213
211
|
// If a valid context cannot be created due to incorrect arguments,
|
|
214
212
|
// this will throw an error.
|
|
215
213
|
const exeContext = buildExecutionContext(
|
|
@@ -222,91 +220,79 @@ export function createSourceEventStream(
|
|
|
222
220
|
fieldResolver,
|
|
223
221
|
);
|
|
224
222
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
const type = getOperationRootType(schema, exeContext.operation);
|
|
231
|
-
const fields = collectFields(
|
|
232
|
-
exeContext,
|
|
233
|
-
type,
|
|
234
|
-
exeContext.operation.selectionSet,
|
|
235
|
-
Object.create(null),
|
|
236
|
-
Object.create(null),
|
|
223
|
+
resolve(
|
|
224
|
+
// Return early errors if execution context failed.
|
|
225
|
+
Array.isArray(exeContext)
|
|
226
|
+
? { errors: exeContext }
|
|
227
|
+
: executeSubscription(exeContext),
|
|
237
228
|
);
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
const fieldNodes = fields[responseName];
|
|
241
|
-
const fieldNode = fieldNodes[0];
|
|
242
|
-
const fieldName = fieldNode.name.value;
|
|
243
|
-
const fieldDef = getFieldDef(schema, type, fieldName);
|
|
229
|
+
}).catch(reportGraphQLError);
|
|
230
|
+
}
|
|
244
231
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
232
|
+
function executeSubscription(
|
|
233
|
+
exeContext: ExecutionContext,
|
|
234
|
+
): Promise<AsyncIterable<mixed>> {
|
|
235
|
+
const { schema, operation, variableValues, rootValue } = exeContext;
|
|
236
|
+
const type = getOperationRootType(schema, operation);
|
|
237
|
+
const fields = collectFields(
|
|
238
|
+
exeContext,
|
|
239
|
+
type,
|
|
240
|
+
operation.selectionSet,
|
|
241
|
+
Object.create(null),
|
|
242
|
+
Object.create(null),
|
|
243
|
+
);
|
|
244
|
+
const responseNames = Object.keys(fields);
|
|
245
|
+
const responseName = responseNames[0];
|
|
246
|
+
const fieldNodes = fields[responseName];
|
|
247
|
+
const fieldNode = fieldNodes[0];
|
|
248
|
+
const fieldName = fieldNode.name.value;
|
|
249
|
+
const fieldDef = getFieldDef(schema, type, fieldName);
|
|
251
250
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
251
|
+
if (!fieldDef) {
|
|
252
|
+
throw new GraphQLError(
|
|
253
|
+
`The subscription field "${fieldName}" is not defined.`,
|
|
254
|
+
fieldNodes,
|
|
255
|
+
);
|
|
256
|
+
}
|
|
255
257
|
|
|
256
|
-
|
|
258
|
+
const path = addPath(undefined, responseName, type.name);
|
|
259
|
+
const info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path);
|
|
257
260
|
|
|
258
|
-
|
|
261
|
+
// Coerce to Promise for easier error handling and consistent return type.
|
|
262
|
+
return new Promise((resolveResult) => {
|
|
263
|
+
// Implements the "ResolveFieldEventStream" algorithm from GraphQL specification.
|
|
264
|
+
// It differs from "ResolveFieldValue" due to providing a different `resolveFn`.
|
|
259
265
|
|
|
260
|
-
//
|
|
261
|
-
//
|
|
262
|
-
|
|
263
|
-
const result = resolveFieldValueOrError(
|
|
264
|
-
exeContext,
|
|
265
|
-
fieldDef,
|
|
266
|
-
fieldNodes,
|
|
267
|
-
resolveFn,
|
|
268
|
-
rootValue,
|
|
269
|
-
info,
|
|
270
|
-
);
|
|
266
|
+
// Build a JS object of arguments from the field.arguments AST, using the
|
|
267
|
+
// variables scope to fulfill any variable references.
|
|
268
|
+
const args = getArgumentValues(fieldDef, fieldNodes[0], variableValues);
|
|
271
269
|
|
|
272
|
-
//
|
|
273
|
-
|
|
274
|
-
|
|
270
|
+
// The resolve function's optional third argument is a context value that
|
|
271
|
+
// is provided to every resolve function within an execution. It is commonly
|
|
272
|
+
// used to represent an authenticated user, or request-specific caches.
|
|
273
|
+
const contextValue = exeContext.contextValue;
|
|
274
|
+
|
|
275
|
+
// Call the `subscribe()` resolver or the default resolver to produce an
|
|
276
|
+
// AsyncIterable yielding raw payloads.
|
|
277
|
+
const resolveFn = fieldDef.subscribe ?? exeContext.fieldResolver;
|
|
278
|
+
resolveResult(resolveFn(rootValue, args, contextValue, info));
|
|
279
|
+
}).then(
|
|
280
|
+
(eventStream) => {
|
|
275
281
|
if (eventStream instanceof Error) {
|
|
276
|
-
|
|
277
|
-
errors: [locatedError(eventStream, fieldNodes, pathToArray(path))],
|
|
278
|
-
};
|
|
282
|
+
throw locatedError(eventStream, fieldNodes, pathToArray(path));
|
|
279
283
|
}
|
|
280
284
|
|
|
281
285
|
// Assert field returned an event stream, otherwise yield an error.
|
|
282
|
-
if (isAsyncIterable(eventStream)) {
|
|
283
|
-
|
|
284
|
-
|
|
286
|
+
if (!isAsyncIterable(eventStream)) {
|
|
287
|
+
throw new Error(
|
|
288
|
+
'Subscription field must return Async Iterable. ' +
|
|
289
|
+
`Received: ${inspect(eventStream)}.`,
|
|
290
|
+
);
|
|
285
291
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
} catch (error) {
|
|
293
|
-
// As with reportGraphQLError above, if the error is a GraphQLError, report
|
|
294
|
-
// it as an ExecutionResult; otherwise treat it as a system-class error and
|
|
295
|
-
// re-throw it.
|
|
296
|
-
return error instanceof GraphQLError
|
|
297
|
-
? Promise.resolve({ errors: [error] })
|
|
298
|
-
: Promise.reject(error);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
/**
|
|
303
|
-
* Returns true if the provided object implements the AsyncIterator protocol via
|
|
304
|
-
* either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
|
|
305
|
-
*/
|
|
306
|
-
function isAsyncIterable(maybeAsyncIterable: mixed): boolean {
|
|
307
|
-
if (maybeAsyncIterable == null || typeof maybeAsyncIterable !== 'object') {
|
|
308
|
-
return false;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
return typeof maybeAsyncIterable[SYMBOL_ASYNC_ITERATOR] === 'function';
|
|
292
|
+
return eventStream;
|
|
293
|
+
},
|
|
294
|
+
(error) => {
|
|
295
|
+
throw locatedError(error, fieldNodes, pathToArray(path));
|
|
296
|
+
},
|
|
297
|
+
);
|
|
312
298
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
2
|
-
|
|
3
|
-
import { SYMBOL_ASYNC_ITERATOR } from "../polyfills/symbols.mjs";
|
|
4
1
|
import inspect from "../jsutils/inspect.mjs";
|
|
2
|
+
import isAsyncIterable from "../jsutils/isAsyncIterable.mjs";
|
|
5
3
|
import { addPath, pathToArray } from "../jsutils/Path.mjs";
|
|
6
4
|
import { GraphQLError } from "../error/GraphQLError.mjs";
|
|
7
5
|
import { locatedError } from "../error/locatedError.mjs";
|
|
8
|
-
import {
|
|
6
|
+
import { getArgumentValues } from "../execution/values.mjs";
|
|
7
|
+
import { assertValidExecutionArguments, buildExecutionContext, buildResolveInfo, collectFields, execute, getFieldDef } from "../execution/execute.mjs";
|
|
9
8
|
import { getOperationRootType } from "../utilities/getOperationRootType.mjs";
|
|
10
9
|
import mapAsyncIterator from "./mapAsyncIterator.mjs";
|
|
11
10
|
export function subscribe(argsOrSchema, document, rootValue, contextValue, variableValues, operationName, fieldResolver, subscribeFieldResolver) {
|
|
@@ -108,77 +107,66 @@ export function createSourceEventStream(schema, document, rootValue, contextValu
|
|
|
108
107
|
// If arguments are missing or incorrectly typed, this is an internal
|
|
109
108
|
// developer mistake which should throw an early error.
|
|
110
109
|
assertValidExecutionArguments(schema, document, variableValues);
|
|
111
|
-
|
|
112
|
-
try {
|
|
113
|
-
var _fieldDef$subscribe;
|
|
114
|
-
|
|
110
|
+
return new Promise(function (resolve) {
|
|
115
111
|
// If a valid context cannot be created due to incorrect arguments,
|
|
116
112
|
// this will throw an error.
|
|
117
|
-
var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
113
|
+
var exeContext = buildExecutionContext(schema, document, rootValue, contextValue, variableValues, operationName, fieldResolver);
|
|
114
|
+
resolve( // Return early errors if execution context failed.
|
|
115
|
+
Array.isArray(exeContext) ? {
|
|
116
|
+
errors: exeContext
|
|
117
|
+
} : executeSubscription(exeContext));
|
|
118
|
+
}).catch(reportGraphQLError);
|
|
119
|
+
}
|
|
124
120
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
121
|
+
function executeSubscription(exeContext) {
|
|
122
|
+
var schema = exeContext.schema,
|
|
123
|
+
operation = exeContext.operation,
|
|
124
|
+
variableValues = exeContext.variableValues,
|
|
125
|
+
rootValue = exeContext.rootValue;
|
|
126
|
+
var type = getOperationRootType(schema, operation);
|
|
127
|
+
var fields = collectFields(exeContext, type, operation.selectionSet, Object.create(null), Object.create(null));
|
|
128
|
+
var responseNames = Object.keys(fields);
|
|
129
|
+
var responseName = responseNames[0];
|
|
130
|
+
var fieldNodes = fields[responseName];
|
|
131
|
+
var fieldNode = fieldNodes[0];
|
|
132
|
+
var fieldName = fieldNode.name.value;
|
|
133
|
+
var fieldDef = getFieldDef(schema, type, fieldName);
|
|
134
|
+
|
|
135
|
+
if (!fieldDef) {
|
|
136
|
+
throw new GraphQLError("The subscription field \"".concat(fieldName, "\" is not defined."), fieldNodes);
|
|
137
|
+
}
|
|
138
138
|
|
|
139
|
+
var path = addPath(undefined, responseName, type.name);
|
|
140
|
+
var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path); // Coerce to Promise for easier error handling and consistent return type.
|
|
139
141
|
|
|
140
|
-
|
|
141
|
-
var
|
|
142
|
-
var info = buildResolveInfo(exeContext, fieldDef, fieldNodes, type, path); // resolveFieldValueOrError implements the "ResolveFieldEventStream"
|
|
143
|
-
// algorithm from GraphQL specification. It differs from
|
|
144
|
-
// "ResolveFieldValue" due to providing a different `resolveFn`.
|
|
142
|
+
return new Promise(function (resolveResult) {
|
|
143
|
+
var _fieldDef$subscribe;
|
|
145
144
|
|
|
146
|
-
|
|
145
|
+
// Implements the "ResolveFieldEventStream" algorithm from GraphQL specification.
|
|
146
|
+
// It differs from "ResolveFieldValue" due to providing a different `resolveFn`.
|
|
147
|
+
// Build a JS object of arguments from the field.arguments AST, using the
|
|
148
|
+
// variables scope to fulfill any variable references.
|
|
149
|
+
var args = getArgumentValues(fieldDef, fieldNodes[0], variableValues); // The resolve function's optional third argument is a context value that
|
|
150
|
+
// is provided to every resolve function within an execution. It is commonly
|
|
151
|
+
// used to represent an authenticated user, or request-specific caches.
|
|
147
152
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (eventStream instanceof Error) {
|
|
151
|
-
return {
|
|
152
|
-
errors: [locatedError(eventStream, fieldNodes, pathToArray(path))]
|
|
153
|
-
};
|
|
154
|
-
} // Assert field returned an event stream, otherwise yield an error.
|
|
153
|
+
var contextValue = exeContext.contextValue; // Call the `subscribe()` resolver or the default resolver to produce an
|
|
154
|
+
// AsyncIterable yielding raw payloads.
|
|
155
155
|
|
|
156
|
+
var resolveFn = (_fieldDef$subscribe = fieldDef.subscribe) !== null && _fieldDef$subscribe !== void 0 ? _fieldDef$subscribe : exeContext.fieldResolver;
|
|
157
|
+
resolveResult(resolveFn(rootValue, args, contextValue, info));
|
|
158
|
+
}).then(function (eventStream) {
|
|
159
|
+
if (eventStream instanceof Error) {
|
|
160
|
+
throw locatedError(eventStream, fieldNodes, pathToArray(path));
|
|
161
|
+
} // Assert field returned an event stream, otherwise yield an error.
|
|
156
162
|
|
|
157
|
-
if (isAsyncIterable(eventStream)) {
|
|
158
|
-
// Note: isAsyncIterable above ensures this will be correct.
|
|
159
|
-
return eventStream;
|
|
160
|
-
}
|
|
161
163
|
|
|
164
|
+
if (!isAsyncIterable(eventStream)) {
|
|
162
165
|
throw new Error('Subscription field must return Async Iterable. ' + "Received: ".concat(inspect(eventStream), "."));
|
|
163
|
-
}
|
|
164
|
-
} catch (error) {
|
|
165
|
-
// As with reportGraphQLError above, if the error is a GraphQLError, report
|
|
166
|
-
// it as an ExecutionResult; otherwise treat it as a system-class error and
|
|
167
|
-
// re-throw it.
|
|
168
|
-
return error instanceof GraphQLError ? Promise.resolve({
|
|
169
|
-
errors: [error]
|
|
170
|
-
}) : Promise.reject(error);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Returns true if the provided object implements the AsyncIterator protocol via
|
|
175
|
-
* either implementing a `Symbol.asyncIterator` or `"@@asyncIterator"` method.
|
|
176
|
-
*/
|
|
177
|
-
|
|
178
|
-
function isAsyncIterable(maybeAsyncIterable) {
|
|
179
|
-
if (maybeAsyncIterable == null || _typeof(maybeAsyncIterable) !== 'object') {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
166
|
+
}
|
|
182
167
|
|
|
183
|
-
|
|
168
|
+
return eventStream;
|
|
169
|
+
}, function (error) {
|
|
170
|
+
throw locatedError(error, fieldNodes, pathToArray(path));
|
|
171
|
+
});
|
|
184
172
|
}
|
package/type/definition.d.ts
CHANGED
|
@@ -183,6 +183,7 @@ interface _GraphQLList<T extends GraphQLType> {
|
|
|
183
183
|
new (type: T): GraphQLList<T>;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
186
187
|
export const GraphQLList: _GraphQLList<GraphQLType>;
|
|
187
188
|
|
|
188
189
|
/**
|
|
@@ -217,6 +218,7 @@ interface _GraphQLNonNull<T extends GraphQLNullableType> {
|
|
|
217
218
|
new (type: T): GraphQLNonNull<T>;
|
|
218
219
|
}
|
|
219
220
|
|
|
221
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare
|
|
220
222
|
export const GraphQLNonNull: _GraphQLNonNull<GraphQLNullableType>;
|
|
221
223
|
|
|
222
224
|
export type GraphQLWrappingType = GraphQLList<any> | GraphQLNonNull<any>;
|
|
@@ -241,15 +243,13 @@ export function isNullableType(type: any): type is GraphQLNullableType;
|
|
|
241
243
|
|
|
242
244
|
export function assertNullableType(type: any): GraphQLNullableType;
|
|
243
245
|
|
|
244
|
-
// FIXME Disabled because of https://github.com/yaacovCR/graphql-tools-fork/issues/40#issuecomment-586671219
|
|
245
|
-
// tslint:disable:unified-signatures
|
|
246
246
|
export function getNullableType(type: undefined): undefined;
|
|
247
247
|
export function getNullableType<T extends GraphQLNullableType>(type: T): T;
|
|
248
248
|
export function getNullableType<T extends GraphQLNullableType>(
|
|
249
|
+
// FIXME Disabled because of https://github.com/yaacovCR/graphql-tools-fork/issues/40#issuecomment-586671219
|
|
249
250
|
// eslint-disable-next-line @typescript-eslint/unified-signatures
|
|
250
251
|
type: GraphQLNonNull<T>,
|
|
251
252
|
): T;
|
|
252
|
-
// tslint:enable:unified-signatures
|
|
253
253
|
|
|
254
254
|
/**
|
|
255
255
|
* These named types do not include modifiers like List or NonNull.
|
|
@@ -370,7 +370,7 @@ export interface GraphQLScalarTypeConfig<TInternal, TExternal> {
|
|
|
370
370
|
* We've provided these template arguments because this is an open type and
|
|
371
371
|
* you may find them useful.
|
|
372
372
|
*/
|
|
373
|
-
export interface GraphQLObjectTypeExtensions<
|
|
373
|
+
export interface GraphQLObjectTypeExtensions<_TSource = any, _TContext = any> {
|
|
374
374
|
[attributeName: string]: any;
|
|
375
375
|
}
|
|
376
376
|
|
|
@@ -501,9 +501,9 @@ export interface GraphQLResolveInfo {
|
|
|
501
501
|
* you may find them useful.
|
|
502
502
|
*/
|
|
503
503
|
export interface GraphQLFieldExtensions<
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
504
|
+
_TSource,
|
|
505
|
+
_TContext,
|
|
506
|
+
_TArgs = { [argName: string]: any }
|
|
507
507
|
> {
|
|
508
508
|
[attributeName: string]: any;
|
|
509
509
|
}
|
|
@@ -546,6 +546,7 @@ export interface GraphQLArgumentConfig {
|
|
|
546
546
|
description?: Maybe<string>;
|
|
547
547
|
type: GraphQLInputType;
|
|
548
548
|
defaultValue?: any;
|
|
549
|
+
deprecationReason?: Maybe<string>;
|
|
549
550
|
extensions?: Maybe<Readonly<GraphQLArgumentExtensions>>;
|
|
550
551
|
astNode?: Maybe<InputValueDefinitionNode>;
|
|
551
552
|
}
|
|
@@ -565,10 +566,12 @@ export interface GraphQLField<
|
|
|
565
566
|
args: Array<GraphQLArgument>;
|
|
566
567
|
resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>;
|
|
567
568
|
subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>;
|
|
568
|
-
isDeprecated: boolean;
|
|
569
569
|
deprecationReason: Maybe<string>;
|
|
570
570
|
extensions: Maybe<Readonly<GraphQLFieldExtensions<TSource, TContext, TArgs>>>;
|
|
571
571
|
astNode?: Maybe<FieldDefinitionNode>;
|
|
572
|
+
|
|
573
|
+
// @deprecated and will be removed in v16
|
|
574
|
+
isDeprecated: boolean;
|
|
572
575
|
}
|
|
573
576
|
|
|
574
577
|
export interface GraphQLArgument {
|
|
@@ -576,6 +579,7 @@ export interface GraphQLArgument {
|
|
|
576
579
|
description: Maybe<string>;
|
|
577
580
|
type: GraphQLInputType;
|
|
578
581
|
defaultValue: any;
|
|
582
|
+
deprecationReason: Maybe<string>;
|
|
579
583
|
extensions: Maybe<Readonly<GraphQLArgumentExtensions>>;
|
|
580
584
|
astNode: Maybe<InputValueDefinitionNode>;
|
|
581
585
|
}
|
|
@@ -829,10 +833,12 @@ export interface GraphQLEnumValue {
|
|
|
829
833
|
name: string;
|
|
830
834
|
description: Maybe<string>;
|
|
831
835
|
value: any;
|
|
832
|
-
isDeprecated: boolean;
|
|
833
836
|
deprecationReason: Maybe<string>;
|
|
834
837
|
extensions: Maybe<Readonly<GraphQLEnumValueExtensions>>;
|
|
835
838
|
astNode?: Maybe<EnumValueDefinitionNode>;
|
|
839
|
+
|
|
840
|
+
// @deprecated and will be removed in v16
|
|
841
|
+
isDeprecated: boolean;
|
|
836
842
|
}
|
|
837
843
|
|
|
838
844
|
/**
|
|
@@ -915,6 +921,7 @@ export interface GraphQLInputFieldConfig {
|
|
|
915
921
|
description?: Maybe<string>;
|
|
916
922
|
type: GraphQLInputType;
|
|
917
923
|
defaultValue?: any;
|
|
924
|
+
deprecationReason?: Maybe<string>;
|
|
918
925
|
extensions?: Maybe<Readonly<GraphQLInputFieldExtensions>>;
|
|
919
926
|
astNode?: Maybe<InputValueDefinitionNode>;
|
|
920
927
|
}
|
|
@@ -928,6 +935,7 @@ export interface GraphQLInputField {
|
|
|
928
935
|
description?: Maybe<string>;
|
|
929
936
|
type: GraphQLInputType;
|
|
930
937
|
defaultValue?: any;
|
|
938
|
+
deprecationReason: Maybe<string>;
|
|
931
939
|
extensions: Maybe<Readonly<GraphQLInputFieldExtensions>>;
|
|
932
940
|
astNode?: Maybe<InputValueDefinitionNode>;
|
|
933
941
|
}
|