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/visitor.js.flow
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "graphql",
|
|
3
|
-
"version": "15.
|
|
3
|
+
"version": "15.5.1",
|
|
4
4
|
"description": "A Query Language and Runtime which can target any service.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "index",
|
|
@@ -21,6 +21,5 @@
|
|
|
21
21
|
],
|
|
22
22
|
"engines": {
|
|
23
23
|
"node": ">= 10.x"
|
|
24
|
-
}
|
|
25
|
-
"dependencies": {}
|
|
24
|
+
}
|
|
26
25
|
}
|
package/polyfills/arrayFrom.js
CHANGED
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _symbols = require("./symbols");
|
|
8
|
+
var _symbols = require("./symbols.js");
|
|
9
9
|
|
|
10
10
|
/* eslint-disable no-redeclare */
|
|
11
|
-
// $FlowFixMe
|
|
11
|
+
// $FlowFixMe[name-already-bound]
|
|
12
12
|
var arrayFrom = Array.from || function (obj, mapFn, thisArg) {
|
|
13
13
|
if (obj == null) {
|
|
14
14
|
throw new TypeError('Array.from requires an array-like object - not null or undefined');
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import { SYMBOL_ITERATOR } from './symbols';
|
|
4
3
|
|
|
5
4
|
declare function arrayFrom<T>(arrayLike: Iterable<T>): Array<T>;
|
|
@@ -11,7 +10,7 @@ declare function arrayFrom<T: mixed>(
|
|
|
11
10
|
): Array<T>;
|
|
12
11
|
|
|
13
12
|
/* eslint-disable no-redeclare */
|
|
14
|
-
// $FlowFixMe
|
|
13
|
+
// $FlowFixMe[name-already-bound]
|
|
15
14
|
const arrayFrom =
|
|
16
15
|
Array.from ||
|
|
17
16
|
function (obj, mapFn, thisArg) {
|
package/polyfills/arrayFrom.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SYMBOL_ITERATOR } from "./symbols.mjs";
|
|
2
2
|
|
|
3
3
|
/* eslint-disable no-redeclare */
|
|
4
|
-
// $FlowFixMe
|
|
4
|
+
// $FlowFixMe[name-already-bound]
|
|
5
5
|
var arrayFrom = Array.from || function (obj, mapFn, thisArg) {
|
|
6
6
|
if (obj == null) {
|
|
7
7
|
throw new TypeError('Array.from requires an array-like object - not null or undefined');
|
package/polyfills/find.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
/* eslint-disable no-redeclare */
|
|
9
|
-
// $FlowFixMe
|
|
9
|
+
// $FlowFixMe[name-already-bound]
|
|
10
10
|
var find = Array.prototype.find ? function (list, predicate) {
|
|
11
11
|
return Array.prototype.find.call(list, predicate);
|
|
12
12
|
} : function (list, predicate) {
|
package/polyfills/find.js.flow
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
declare function find<T>(
|
|
4
3
|
list: $ReadOnlyArray<T>,
|
|
5
4
|
predicate: (item: T) => boolean,
|
|
6
5
|
): T | void;
|
|
7
6
|
|
|
8
7
|
/* eslint-disable no-redeclare */
|
|
9
|
-
// $FlowFixMe
|
|
8
|
+
// $FlowFixMe[name-already-bound]
|
|
10
9
|
const find = Array.prototype.find
|
|
11
10
|
? function (list, predicate) {
|
|
12
11
|
return Array.prototype.find.call(list, predicate);
|
package/polyfills/find.mjs
CHANGED
package/polyfills/isFinite.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
/* eslint-disable no-redeclare */
|
|
9
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
|
|
9
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
10
10
|
var isFinitePolyfill = Number.isFinite || function (value) {
|
|
11
11
|
return typeof value === 'number' && isFinite(value);
|
|
12
12
|
};
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
declare function isFinitePolyfill(
|
|
4
3
|
value: mixed,
|
|
5
4
|
): boolean %checks(typeof value === 'number');
|
|
6
5
|
|
|
7
6
|
/* eslint-disable no-redeclare */
|
|
8
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
|
|
7
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
9
8
|
const isFinitePolyfill =
|
|
10
9
|
Number.isFinite ||
|
|
11
10
|
function (value) {
|
package/polyfills/isFinite.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-redeclare */
|
|
2
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
|
|
2
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
3
3
|
var isFinitePolyfill = Number.isFinite || function (value) {
|
|
4
4
|
return typeof value === 'number' && isFinite(value);
|
|
5
5
|
};
|
package/polyfills/isInteger.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
/* eslint-disable no-redeclare */
|
|
9
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
|
|
9
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
10
10
|
var isInteger = Number.isInteger || function (value) {
|
|
11
11
|
return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
|
|
12
12
|
};
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
declare function isInteger(value: mixed): boolean %checks(typeof value ===
|
|
4
3
|
'number');
|
|
5
4
|
|
|
6
5
|
/* eslint-disable no-redeclare */
|
|
7
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
|
|
6
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
8
7
|
const isInteger =
|
|
9
8
|
Number.isInteger ||
|
|
10
9
|
function (value) {
|
package/polyfills/isInteger.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-redeclare */
|
|
2
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/4441
|
|
2
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
3
3
|
var isInteger = Number.isInteger || function (value) {
|
|
4
4
|
return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
|
|
5
5
|
};
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
/* eslint-disable no-redeclare */
|
|
9
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/
|
|
9
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
10
10
|
var objectEntries = Object.entries || function (obj) {
|
|
11
11
|
return Object.keys(obj).map(function (key) {
|
|
12
12
|
return [key, obj[key]];
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import type { ObjMap } from '../jsutils/ObjMap';
|
|
4
3
|
|
|
5
4
|
declare function objectEntries<T>(obj: ObjMap<T>): Array<[string, T]>;
|
|
6
5
|
|
|
7
6
|
/* eslint-disable no-redeclare */
|
|
8
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/
|
|
7
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
9
8
|
const objectEntries =
|
|
10
9
|
Object.entries || ((obj) => Object.keys(obj).map((key) => [key, obj[key]]));
|
|
11
10
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-redeclare */
|
|
2
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/
|
|
2
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
3
3
|
var objectEntries = Object.entries || function (obj) {
|
|
4
4
|
return Object.keys(obj).map(function (key) {
|
|
5
5
|
return [key, obj[key]];
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
/* eslint-disable no-redeclare */
|
|
9
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/
|
|
9
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
10
10
|
var objectValues = Object.values || function (obj) {
|
|
11
11
|
return Object.keys(obj).map(function (key) {
|
|
12
12
|
return obj[key];
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import type { ObjMap } from '../jsutils/ObjMap';
|
|
4
3
|
|
|
5
4
|
declare function objectValues<T>(obj: ObjMap<T>): Array<T>;
|
|
6
5
|
|
|
7
6
|
/* eslint-disable no-redeclare */
|
|
8
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/
|
|
7
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
9
8
|
const objectValues =
|
|
10
9
|
Object.values || ((obj) => Object.keys(obj).map((key) => obj[key]));
|
|
11
10
|
export default objectValues;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable no-redeclare */
|
|
2
|
-
// $FlowFixMe workaround for: https://github.com/facebook/flow/issues/
|
|
2
|
+
// $FlowFixMe[name-already-bound] workaround for: https://github.com/facebook/flow/issues/4441
|
|
3
3
|
var objectValues = Object.values || function (obj) {
|
|
4
4
|
return Object.keys(obj).map(function (key) {
|
|
5
5
|
return obj[key];
|
package/polyfills/symbols.js
CHANGED
|
@@ -6,14 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SYMBOL_TO_STRING_TAG = exports.SYMBOL_ASYNC_ITERATOR = exports.SYMBOL_ITERATOR = void 0;
|
|
7
7
|
// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator
|
|
8
8
|
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
9
|
-
var SYMBOL_ITERATOR = typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
|
|
9
|
+
var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
|
|
10
10
|
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
11
11
|
|
|
12
12
|
exports.SYMBOL_ITERATOR = SYMBOL_ITERATOR;
|
|
13
|
-
var SYMBOL_ASYNC_ITERATOR =
|
|
14
|
-
typeof Symbol === 'function' ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
13
|
+
var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
15
14
|
|
|
16
15
|
exports.SYMBOL_ASYNC_ITERATOR = SYMBOL_ASYNC_ITERATOR;
|
|
17
|
-
var SYMBOL_TO_STRING_TAG =
|
|
18
|
-
typeof Symbol === 'function' ? Symbol.toStringTag : '@@toStringTag';
|
|
16
|
+
var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';
|
|
19
17
|
exports.SYMBOL_TO_STRING_TAG = SYMBOL_TO_STRING_TAG;
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator
|
|
4
3
|
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
5
4
|
export const SYMBOL_ITERATOR: string =
|
|
6
|
-
typeof Symbol === 'function'
|
|
5
|
+
typeof Symbol === 'function' && Symbol.iterator != null
|
|
6
|
+
? Symbol.iterator
|
|
7
|
+
: '@@iterator';
|
|
7
8
|
|
|
8
9
|
// In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
|
|
9
10
|
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
10
11
|
export const SYMBOL_ASYNC_ITERATOR: string =
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
typeof Symbol === 'function' && Symbol.asyncIterator != null
|
|
13
|
+
? Symbol.asyncIterator
|
|
14
|
+
: '@@asyncIterator';
|
|
13
15
|
|
|
14
16
|
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
15
17
|
export const SYMBOL_TO_STRING_TAG: string =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
typeof Symbol === 'function' && Symbol.toStringTag != null
|
|
19
|
+
? Symbol.toStringTag
|
|
20
|
+
: '@@toStringTag';
|
package/polyfills/symbols.mjs
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator
|
|
2
2
|
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
3
|
-
export var SYMBOL_ITERATOR = typeof Symbol === 'function' ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
|
|
3
|
+
export var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator
|
|
4
4
|
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
5
5
|
|
|
6
|
-
export var SYMBOL_ASYNC_ITERATOR =
|
|
7
|
-
typeof Symbol === 'function' ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
6
|
+
export var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')
|
|
8
7
|
|
|
9
|
-
export var SYMBOL_TO_STRING_TAG =
|
|
10
|
-
typeof Symbol === 'function' ? Symbol.toStringTag : '@@toStringTag';
|
|
8
|
+
export var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';
|
package/subscription/index.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = mapAsyncIterator;
|
|
7
7
|
|
|
8
|
-
var _symbols = require("../polyfills/symbols");
|
|
8
|
+
var _symbols = require("../polyfills/symbols.js");
|
|
9
9
|
|
|
10
10
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
11
|
|
|
@@ -14,7 +14,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
14
14
|
* which produces values mapped via calling the callback function.
|
|
15
15
|
*/
|
|
16
16
|
function mapAsyncIterator(iterable, callback, rejectCallback) {
|
|
17
|
-
// $FlowFixMe
|
|
17
|
+
// $FlowFixMe[prop-missing]
|
|
18
18
|
var iteratorMethod = iterable[_symbols.SYMBOL_ASYNC_ITERATOR];
|
|
19
19
|
var iterator = iteratorMethod.call(iterable);
|
|
20
20
|
var $return;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import { SYMBOL_ASYNC_ITERATOR } from '../polyfills/symbols';
|
|
4
3
|
|
|
5
4
|
import type { PromiseOrValue } from '../jsutils/PromiseOrValue';
|
|
@@ -9,24 +8,24 @@ import type { PromiseOrValue } from '../jsutils/PromiseOrValue';
|
|
|
9
8
|
* which produces values mapped via calling the callback function.
|
|
10
9
|
*/
|
|
11
10
|
export default function mapAsyncIterator<T, U>(
|
|
12
|
-
iterable: AsyncIterable<T>,
|
|
11
|
+
iterable: AsyncIterable<T> | AsyncGenerator<T, void, void>,
|
|
13
12
|
callback: (T) => PromiseOrValue<U>,
|
|
14
13
|
rejectCallback?: (any) => PromiseOrValue<U>,
|
|
15
14
|
): AsyncGenerator<U, void, void> {
|
|
16
|
-
// $FlowFixMe
|
|
15
|
+
// $FlowFixMe[prop-missing]
|
|
17
16
|
const iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR];
|
|
18
17
|
const iterator: any = iteratorMethod.call(iterable);
|
|
19
18
|
let $return: any;
|
|
20
19
|
let abruptClose;
|
|
21
20
|
if (typeof iterator.return === 'function') {
|
|
22
21
|
$return = iterator.return;
|
|
23
|
-
abruptClose = (error) => {
|
|
22
|
+
abruptClose = (error: mixed) => {
|
|
24
23
|
const rethrow = () => Promise.reject(error);
|
|
25
24
|
return $return.call(iterator).then(rethrow, rethrow);
|
|
26
25
|
};
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
function mapResult(result) {
|
|
28
|
+
function mapResult(result: IteratorResult<T, void>) {
|
|
30
29
|
return result.done
|
|
31
30
|
? result
|
|
32
31
|
: asyncMapValue(result.value, callback).then(iteratorResult, abruptClose);
|
|
@@ -36,14 +35,14 @@ export default function mapAsyncIterator<T, U>(
|
|
|
36
35
|
if (rejectCallback) {
|
|
37
36
|
// Capture rejectCallback to ensure it cannot be null.
|
|
38
37
|
const reject = rejectCallback;
|
|
39
|
-
mapReject = (error) =>
|
|
38
|
+
mapReject = (error: mixed) =>
|
|
40
39
|
asyncMapValue(error, reject).then(iteratorResult, abruptClose);
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
/* TODO: Flow doesn't support symbols as keys:
|
|
44
43
|
https://github.com/facebook/flow/issues/3258 */
|
|
45
44
|
return ({
|
|
46
|
-
next() {
|
|
45
|
+
next(): Promise<IteratorResult<U, void>> {
|
|
47
46
|
return iterator.next().then(mapResult, mapReject);
|
|
48
47
|
},
|
|
49
48
|
return() {
|
|
@@ -51,7 +50,7 @@ export default function mapAsyncIterator<T, U>(
|
|
|
51
50
|
? $return.call(iterator).then(mapResult, mapReject)
|
|
52
51
|
: Promise.resolve({ value: undefined, done: true });
|
|
53
52
|
},
|
|
54
|
-
throw(error) {
|
|
53
|
+
throw(error?: mixed): Promise<IteratorResult<U, void>> {
|
|
55
54
|
if (typeof iterator.throw === 'function') {
|
|
56
55
|
return iterator.throw(error).then(mapResult, mapReject);
|
|
57
56
|
}
|
|
@@ -60,7 +59,7 @@ export default function mapAsyncIterator<T, U>(
|
|
|
60
59
|
[SYMBOL_ASYNC_ITERATOR]() {
|
|
61
60
|
return this;
|
|
62
61
|
},
|
|
63
|
-
}:
|
|
62
|
+
}: $FlowFixMe);
|
|
64
63
|
}
|
|
65
64
|
|
|
66
65
|
function asyncMapValue<T, U>(
|
|
@@ -7,7 +7,7 @@ import { SYMBOL_ASYNC_ITERATOR } from "../polyfills/symbols.mjs";
|
|
|
7
7
|
* which produces values mapped via calling the callback function.
|
|
8
8
|
*/
|
|
9
9
|
export default function mapAsyncIterator(iterable, callback, rejectCallback) {
|
|
10
|
-
// $FlowFixMe
|
|
10
|
+
// $FlowFixMe[prop-missing]
|
|
11
11
|
var iteratorMethod = iterable[SYMBOL_ASYNC_ITERATOR];
|
|
12
12
|
var iterator = iteratorMethod.call(iterable);
|
|
13
13
|
var $return;
|
|
@@ -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
|
}
|