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
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ Looking for help? Find resources [from the community](https://graphql.org/commun
|
|
|
13
13
|
|
|
14
14
|
## Getting Started
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
A general overview of GraphQL is available in the
|
|
17
17
|
[README](https://github.com/graphql/graphql-spec/blob/master/README.md) for the
|
|
18
18
|
[Specification for GraphQL](https://github.com/graphql/graphql-spec). That overview
|
|
19
19
|
describes a simple set of GraphQL examples that exist as [tests](src/__tests__)
|
|
@@ -30,16 +30,16 @@ With npm:
|
|
|
30
30
|
npm install --save graphql
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
or
|
|
33
|
+
or using yarn:
|
|
34
34
|
|
|
35
35
|
```sh
|
|
36
36
|
yarn add graphql
|
|
37
37
|
```
|
|
38
38
|
|
|
39
|
-
GraphQL.js provides two important capabilities: building a type schema
|
|
39
|
+
GraphQL.js provides two important capabilities: building a type schema and
|
|
40
40
|
serving queries against that type schema.
|
|
41
41
|
|
|
42
|
-
First, build a GraphQL type schema which maps to your
|
|
42
|
+
First, build a GraphQL type schema which maps to your codebase.
|
|
43
43
|
|
|
44
44
|
```js
|
|
45
45
|
import {
|
|
@@ -64,10 +64,9 @@ var schema = new GraphQLSchema({
|
|
|
64
64
|
});
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
This defines a simple schema with one type and one field, that resolves
|
|
67
|
+
This defines a simple schema, with one type and one field, that resolves
|
|
68
68
|
to a fixed value. The `resolve` function can return a value, a promise,
|
|
69
|
-
or an array of promises. A more complex example is included in the top
|
|
70
|
-
level [tests](src/__tests__) directory.
|
|
69
|
+
or an array of promises. A more complex example is included in the top-level [tests](src/__tests__) directory.
|
|
71
70
|
|
|
72
71
|
Then, serve the result of a query against that type schema.
|
|
73
72
|
|
|
@@ -102,7 +101,7 @@ graphql(schema, query).then((result) => {
|
|
|
102
101
|
});
|
|
103
102
|
```
|
|
104
103
|
|
|
105
|
-
**Note**: Please don't forget to set `NODE_ENV=production` if you are running a production server
|
|
104
|
+
**Note**: Please don't forget to set `NODE_ENV=production` if you are running a production server. It will disable some checks that can be useful during development but will significantly improve performance.
|
|
106
105
|
|
|
107
106
|
### Want to ride the bleeding edge?
|
|
108
107
|
|
|
@@ -116,9 +115,19 @@ directly on this branch:
|
|
|
116
115
|
npm install graphql@git://github.com/graphql/graphql-js.git#npm
|
|
117
116
|
```
|
|
118
117
|
|
|
118
|
+
### Experimental features
|
|
119
|
+
|
|
120
|
+
Each release of GraphQL.js will be accompanied by an experimental release containing support for the `@defer` and `@stream` directive proposal. We are hoping to get community feedback on these releases before the proposal is accepted into the GraphQL specification. You can use this experimental release of GraphQL.js by adding the following to your project's `package.json` file.
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
"graphql": "experimental-stream-defer"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Community feedback on this experimental release is much appreciated and can be provided on the [issue created for this purpose](https://github.com/graphql/graphql-js/issues/2848).
|
|
127
|
+
|
|
119
128
|
### Using in a Browser
|
|
120
129
|
|
|
121
|
-
GraphQL.js is a general
|
|
130
|
+
GraphQL.js is a general-purpose library and can be used both in a Node server
|
|
122
131
|
and in the browser. As an example, the [GraphiQL](https://github.com/graphql/graphiql/)
|
|
123
132
|
tool is built with GraphQL.js!
|
|
124
133
|
|
|
@@ -130,7 +139,7 @@ custom build configurations look for `.mjs` files!
|
|
|
130
139
|
|
|
131
140
|
### Contributing
|
|
132
141
|
|
|
133
|
-
We actively welcome pull requests
|
|
142
|
+
We actively welcome pull requests. Learn how to [contribute](./.github/CONTRIBUTING.md).
|
|
134
143
|
|
|
135
144
|
### Changelog
|
|
136
145
|
|
package/error/GraphQLError.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
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); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.printError = printError;
|
|
7
9
|
exports.GraphQLError = void 0;
|
|
8
10
|
|
|
9
|
-
var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
|
|
11
|
+
var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
|
|
10
12
|
|
|
11
|
-
var _symbols = require("../polyfills/symbols");
|
|
13
|
+
var _symbols = require("../polyfills/symbols.js");
|
|
12
14
|
|
|
13
|
-
var _location = require("../language/location");
|
|
15
|
+
var _location = require("../language/location.js");
|
|
14
16
|
|
|
15
|
-
var _printLocation = require("../language/printLocation");
|
|
17
|
+
var _printLocation = require("../language/printLocation.js");
|
|
16
18
|
|
|
17
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
20
|
|
|
19
|
-
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); }
|
|
20
|
-
|
|
21
21
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
22
22
|
|
|
23
23
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
@@ -219,7 +219,7 @@ var GraphQLError = /*#__PURE__*/function (_Error) {
|
|
|
219
219
|
}
|
|
220
220
|
}); // Include (non-enumerable) stack trace.
|
|
221
221
|
|
|
222
|
-
if (originalError
|
|
222
|
+
if (originalError !== null && originalError !== void 0 && originalError.stack) {
|
|
223
223
|
Object.defineProperty(_assertThisInitialized(_this), 'stack', {
|
|
224
224
|
value: originalError.stack,
|
|
225
225
|
writable: true,
|
|
@@ -247,7 +247,7 @@ var GraphQLError = /*#__PURE__*/function (_Error) {
|
|
|
247
247
|
value: function toString() {
|
|
248
248
|
return printError(this);
|
|
249
249
|
} // FIXME: workaround to not break chai comparisons, should be remove in v16
|
|
250
|
-
// $FlowFixMe Flow doesn't support computed properties yet
|
|
250
|
+
// $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
251
251
|
|
|
252
252
|
}, {
|
|
253
253
|
key: _symbols.SYMBOL_TO_STRING_TAG,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
// FIXME:
|
|
4
3
|
// flowlint uninitialized-instance-property:off
|
|
5
4
|
|
|
@@ -85,7 +84,7 @@ export class GraphQLError extends Error {
|
|
|
85
84
|
path?: ?$ReadOnlyArray<string | number>,
|
|
86
85
|
originalError?: ?(Error & { +extensions?: mixed, ... }),
|
|
87
86
|
extensions?: ?{ [key: string]: mixed, ... },
|
|
88
|
-
)
|
|
87
|
+
) {
|
|
89
88
|
super(message);
|
|
90
89
|
|
|
91
90
|
// Compute list of blame nodes.
|
|
@@ -214,7 +213,7 @@ export class GraphQLError extends Error {
|
|
|
214
213
|
}
|
|
215
214
|
|
|
216
215
|
// FIXME: workaround to not break chai comparisons, should be remove in v16
|
|
217
|
-
// $FlowFixMe Flow doesn't support computed properties yet
|
|
216
|
+
// $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
218
217
|
get [SYMBOL_TO_STRING_TAG](): string {
|
|
219
218
|
return 'Object';
|
|
220
219
|
}
|
package/error/GraphQLError.mjs
CHANGED
|
@@ -208,7 +208,7 @@ export var GraphQLError = /*#__PURE__*/function (_Error) {
|
|
|
208
208
|
}
|
|
209
209
|
}); // Include (non-enumerable) stack trace.
|
|
210
210
|
|
|
211
|
-
if (originalError
|
|
211
|
+
if (originalError !== null && originalError !== void 0 && originalError.stack) {
|
|
212
212
|
Object.defineProperty(_assertThisInitialized(_this), 'stack', {
|
|
213
213
|
value: originalError.stack,
|
|
214
214
|
writable: true,
|
|
@@ -236,7 +236,7 @@ export var GraphQLError = /*#__PURE__*/function (_Error) {
|
|
|
236
236
|
value: function toString() {
|
|
237
237
|
return printError(this);
|
|
238
238
|
} // FIXME: workaround to not break chai comparisons, should be remove in v16
|
|
239
|
-
// $FlowFixMe Flow doesn't support computed properties yet
|
|
239
|
+
// $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet
|
|
240
240
|
|
|
241
241
|
}, {
|
|
242
242
|
key: SYMBOL_TO_STRING_TAG,
|
package/error/formatError.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.formatError = formatError;
|
|
7
7
|
|
|
8
|
-
var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
|
|
8
|
+
var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
|
|
9
9
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
|
package/error/index.js
CHANGED
|
@@ -34,10 +34,10 @@ Object.defineProperty(exports, "formatError", {
|
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
var _GraphQLError = require("./GraphQLError");
|
|
37
|
+
var _GraphQLError = require("./GraphQLError.js");
|
|
38
38
|
|
|
39
|
-
var _syntaxError = require("./syntaxError");
|
|
39
|
+
var _syntaxError = require("./syntaxError.js");
|
|
40
40
|
|
|
41
|
-
var _locatedError = require("./locatedError");
|
|
41
|
+
var _locatedError = require("./locatedError.js");
|
|
42
42
|
|
|
43
|
-
var _formatError = require("./formatError");
|
|
43
|
+
var _formatError = require("./formatError.js");
|
package/error/index.js.flow
CHANGED
package/error/locatedError.d.ts
CHANGED
|
@@ -5,12 +5,12 @@ import { ASTNode } from '../language/ast';
|
|
|
5
5
|
import { GraphQLError } from './GraphQLError';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Given an arbitrary
|
|
8
|
+
* Given an arbitrary value, presumably thrown while attempting to execute a
|
|
9
9
|
* GraphQL operation, produce a new GraphQLError aware of the location in the
|
|
10
10
|
* document responsible for the original Error.
|
|
11
11
|
*/
|
|
12
12
|
export function locatedError(
|
|
13
|
-
|
|
13
|
+
rawOriginalError: any,
|
|
14
14
|
nodes: ASTNode | ReadonlyArray<ASTNode> | undefined,
|
|
15
15
|
path?: Maybe<ReadonlyArray<string | number>>,
|
|
16
16
|
): GraphQLError;
|
package/error/locatedError.js
CHANGED
|
@@ -5,18 +5,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.locatedError = locatedError;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
9
|
+
|
|
10
|
+
var _GraphQLError = require("./GraphQLError.js");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
13
|
|
|
10
14
|
/**
|
|
11
|
-
* Given an arbitrary
|
|
15
|
+
* Given an arbitrary value, presumably thrown while attempting to execute a
|
|
12
16
|
* GraphQL operation, produce a new GraphQLError aware of the location in the
|
|
13
17
|
* document responsible for the original Error.
|
|
14
18
|
*/
|
|
15
|
-
function locatedError(
|
|
19
|
+
function locatedError(rawOriginalError, nodes, path) {
|
|
16
20
|
var _nodes;
|
|
17
21
|
|
|
18
|
-
//
|
|
19
|
-
// other contexts.
|
|
22
|
+
// Sometimes a non-error is thrown, wrap it as an Error instance to ensure a consistent Error interface.
|
|
23
|
+
var originalError = rawOriginalError instanceof Error ? rawOriginalError : new Error('Unexpected error value: ' + (0, _inspect.default)(rawOriginalError)); // Note: this uses a brand-check to support GraphQL errors originating from other contexts.
|
|
24
|
+
|
|
20
25
|
if (Array.isArray(originalError.path)) {
|
|
21
26
|
return originalError;
|
|
22
27
|
}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
+
import inspect from '../jsutils/inspect';
|
|
2
3
|
|
|
3
4
|
import type { ASTNode } from '../language/ast';
|
|
4
5
|
|
|
5
6
|
import { GraphQLError } from './GraphQLError';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
|
-
* Given an arbitrary
|
|
9
|
+
* Given an arbitrary value, presumably thrown while attempting to execute a
|
|
9
10
|
* GraphQL operation, produce a new GraphQLError aware of the location in the
|
|
10
11
|
* document responsible for the original Error.
|
|
11
12
|
*/
|
|
12
13
|
export function locatedError(
|
|
13
|
-
|
|
14
|
+
rawOriginalError: mixed,
|
|
14
15
|
nodes: ASTNode | $ReadOnlyArray<ASTNode> | void | null,
|
|
15
16
|
path?: ?$ReadOnlyArray<string | number>,
|
|
16
17
|
): GraphQLError {
|
|
17
|
-
//
|
|
18
|
-
|
|
18
|
+
// Sometimes a non-error is thrown, wrap it as an Error instance to ensure a consistent Error interface.
|
|
19
|
+
const originalError: Error | GraphQLError =
|
|
20
|
+
rawOriginalError instanceof Error
|
|
21
|
+
? rawOriginalError
|
|
22
|
+
: new Error('Unexpected error value: ' + inspect(rawOriginalError));
|
|
23
|
+
|
|
24
|
+
// Note: this uses a brand-check to support GraphQL errors originating from other contexts.
|
|
19
25
|
if (Array.isArray(originalError.path)) {
|
|
20
26
|
return (originalError: any);
|
|
21
27
|
}
|
package/error/locatedError.mjs
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import inspect from "../jsutils/inspect.mjs";
|
|
1
2
|
import { GraphQLError } from "./GraphQLError.mjs";
|
|
2
3
|
/**
|
|
3
|
-
* Given an arbitrary
|
|
4
|
+
* Given an arbitrary value, presumably thrown while attempting to execute a
|
|
4
5
|
* GraphQL operation, produce a new GraphQLError aware of the location in the
|
|
5
6
|
* document responsible for the original Error.
|
|
6
7
|
*/
|
|
7
8
|
|
|
8
|
-
export function locatedError(
|
|
9
|
+
export function locatedError(rawOriginalError, nodes, path) {
|
|
9
10
|
var _nodes;
|
|
10
11
|
|
|
11
|
-
//
|
|
12
|
-
// other contexts.
|
|
12
|
+
// Sometimes a non-error is thrown, wrap it as an Error instance to ensure a consistent Error interface.
|
|
13
|
+
var originalError = rawOriginalError instanceof Error ? rawOriginalError : new Error('Unexpected error value: ' + inspect(rawOriginalError)); // Note: this uses a brand-check to support GraphQL errors originating from other contexts.
|
|
14
|
+
|
|
13
15
|
if (Array.isArray(originalError.path)) {
|
|
14
16
|
return originalError;
|
|
15
17
|
}
|
package/error/syntaxError.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.syntaxError = syntaxError;
|
|
7
7
|
|
|
8
|
-
var _GraphQLError = require("./GraphQLError");
|
|
8
|
+
var _GraphQLError = require("./GraphQLError.js");
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Produces a GraphQLError representing a syntax error, containing useful
|
package/execution/execute.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { PromiseOrValue } from '../jsutils/PromiseOrValue';
|
|
|
4
4
|
import { Path } from '../jsutils/Path';
|
|
5
5
|
|
|
6
6
|
import { GraphQLError } from '../error/GraphQLError';
|
|
7
|
+
import { GraphQLFormattedError } from '../error/formatError';
|
|
7
8
|
|
|
8
9
|
import {
|
|
9
10
|
DocumentNode,
|
|
@@ -55,6 +56,16 @@ export interface ExecutionResult<
|
|
|
55
56
|
extensions?: TExtensions;
|
|
56
57
|
}
|
|
57
58
|
|
|
59
|
+
export interface FormattedExecutionResult<
|
|
60
|
+
TData = { [key: string]: any },
|
|
61
|
+
TExtensions = { [key: string]: any }
|
|
62
|
+
> {
|
|
63
|
+
errors?: ReadonlyArray<GraphQLFormattedError>;
|
|
64
|
+
// TS_SPECIFIC: TData. Motivation: https://github.com/graphql/graphql-js/pull/2490#issuecomment-639154229
|
|
65
|
+
data?: TData | null;
|
|
66
|
+
extensions?: TExtensions;
|
|
67
|
+
}
|
|
68
|
+
|
|
58
69
|
export interface ExecutionArgs {
|
|
59
70
|
schema: GraphQLSchema;
|
|
60
71
|
document: DocumentNode;
|
|
@@ -148,21 +159,6 @@ export function buildResolveInfo(
|
|
|
148
159
|
path: Path,
|
|
149
160
|
): GraphQLResolveInfo;
|
|
150
161
|
|
|
151
|
-
/**
|
|
152
|
-
* Isolates the "ReturnOrAbrupt" behavior to not de-opt the `resolveField`
|
|
153
|
-
* function. Returns the result of resolveFn or the abrupt-return Error object.
|
|
154
|
-
*
|
|
155
|
-
* @internal
|
|
156
|
-
*/
|
|
157
|
-
export function resolveFieldValueOrError(
|
|
158
|
-
exeContext: ExecutionContext,
|
|
159
|
-
fieldDef: GraphQLField<any, any>,
|
|
160
|
-
fieldNodes: ReadonlyArray<FieldNode>,
|
|
161
|
-
resolveFn: GraphQLFieldResolver<any, any>,
|
|
162
|
-
source: any,
|
|
163
|
-
info: GraphQLResolveInfo,
|
|
164
|
-
): any;
|
|
165
|
-
|
|
166
162
|
/**
|
|
167
163
|
* If a resolveType function is not given, then a default resolve behavior is
|
|
168
164
|
* used which attempts two strategies:
|