graphql 14.1.1 → 14.3.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 +1 -1
- package/error/GraphQLError.js +12 -10
- package/error/GraphQLError.js.flow +11 -6
- package/error/GraphQLError.mjs +20 -3
- package/error/formatError.js +2 -2
- package/error/formatError.js.flow +3 -3
- package/error/formatError.mjs +2 -2
- package/error/index.js +1 -1
- package/error/index.js.flow +5 -2
- package/error/index.mjs +2 -2
- package/error/locatedError.js +2 -2
- package/error/locatedError.js.flow +2 -2
- package/error/locatedError.mjs +2 -2
- package/error/printError.js +2 -2
- package/error/printError.js.flow +4 -5
- package/error/printError.mjs +2 -2
- package/error/syntaxError.js +2 -2
- package/error/syntaxError.js.flow +2 -2
- package/error/syntaxError.mjs +2 -2
- package/execution/execute.js +52 -37
- package/execution/execute.js.flow +66 -51
- package/execution/execute.mjs +50 -38
- package/execution/index.js +7 -1
- package/execution/index.js.flow +9 -4
- package/execution/index.mjs +3 -3
- package/execution/values.js +11 -11
- package/execution/values.js.flow +23 -19
- package/execution/values.mjs +11 -11
- package/graphql.js +13 -9
- package/graphql.js.flow +28 -10
- package/graphql.mjs +10 -9
- package/index.js +83 -53
- package/index.js.flow +60 -47
- package/index.mjs +26 -23
- package/jsutils/ObjMap.js +1 -1
- package/jsutils/ObjMap.js.flow +1 -1
- package/jsutils/ObjMap.mjs +1 -0
- package/jsutils/PromiseOrValue.js +1 -0
- package/jsutils/{MaybePromise.js.flow → PromiseOrValue.js.flow} +2 -2
- package/jsutils/PromiseOrValue.mjs +1 -0
- package/jsutils/dedent.js +2 -2
- package/jsutils/dedent.js.flow +1 -1
- package/jsutils/dedent.mjs +2 -2
- package/jsutils/defineToJSON.js +2 -2
- package/jsutils/defineToJSON.js.flow +1 -1
- package/jsutils/defineToJSON.mjs +2 -2
- package/jsutils/defineToStringTag.js +2 -2
- package/jsutils/defineToStringTag.js.flow +1 -1
- package/jsutils/defineToStringTag.mjs +2 -2
- package/jsutils/inspect.js +94 -19
- package/jsutils/inspect.js.flow +98 -20
- package/jsutils/inspect.mjs +94 -20
- package/jsutils/instanceOf.js +2 -2
- package/jsutils/instanceOf.js.flow +1 -1
- package/jsutils/instanceOf.mjs +2 -2
- package/jsutils/invariant.js +5 -3
- package/jsutils/invariant.js.flow +3 -2
- package/jsutils/invariant.mjs +5 -3
- package/jsutils/isInvalid.js +2 -2
- package/jsutils/isInvalid.js.flow +1 -1
- package/jsutils/isInvalid.mjs +2 -2
- package/jsutils/isNullish.js +2 -2
- package/jsutils/isNullish.js.flow +1 -1
- package/jsutils/isNullish.mjs +2 -2
- package/jsutils/isPromise.js +2 -2
- package/jsutils/isPromise.js.flow +1 -1
- package/jsutils/isPromise.mjs +2 -2
- package/jsutils/keyMap.js +4 -3
- package/jsutils/keyMap.js.flow +6 -6
- package/jsutils/keyMap.mjs +4 -3
- package/jsutils/keyValMap.js +4 -3
- package/jsutils/keyValMap.js.flow +6 -6
- package/jsutils/keyValMap.mjs +4 -3
- package/jsutils/mapValue.js +2 -2
- package/jsutils/mapValue.js.flow +2 -2
- package/jsutils/mapValue.mjs +2 -2
- package/jsutils/memoize3.js +3 -3
- package/jsutils/memoize3.js.flow +2 -2
- package/jsutils/memoize3.mjs +3 -3
- package/jsutils/nodejsCustomInspectSymbol.js +2 -2
- package/jsutils/nodejsCustomInspectSymbol.js.flow +1 -1
- package/jsutils/nodejsCustomInspectSymbol.mjs +2 -2
- package/jsutils/orList.js +2 -2
- package/jsutils/orList.js.flow +1 -1
- package/jsutils/orList.mjs +2 -2
- package/jsutils/promiseForObject.js +2 -2
- package/jsutils/promiseForObject.js.flow +2 -2
- package/jsutils/promiseForObject.mjs +2 -2
- package/jsutils/promiseReduce.js +2 -2
- package/jsutils/promiseReduce.js.flow +5 -5
- package/jsutils/promiseReduce.mjs +2 -2
- package/jsutils/quotedOrList.js +2 -2
- package/jsutils/quotedOrList.js.flow +1 -1
- package/jsutils/quotedOrList.mjs +2 -2
- package/jsutils/suggestionList.js +2 -2
- package/jsutils/suggestionList.js.flow +1 -1
- package/jsutils/suggestionList.mjs +2 -2
- package/language/ast.js +1 -1
- package/language/ast.js.flow +3 -3
- package/language/ast.mjs +1 -0
- package/language/blockString.js +114 -0
- package/language/blockString.js.flow +102 -0
- package/language/blockString.mjs +104 -0
- package/language/directiveLocation.js +2 -2
- package/language/directiveLocation.js.flow +1 -1
- package/language/directiveLocation.mjs +2 -2
- package/language/index.js +9 -9
- package/language/index.js.flow +10 -5
- package/language/index.mjs +3 -3
- package/language/kinds.js +2 -2
- package/language/kinds.js.flow +1 -1
- package/language/kinds.mjs +2 -2
- package/language/lexer.js +52 -44
- package/language/lexer.js.flow +65 -54
- package/language/lexer.mjs +49 -43
- package/language/location.js +2 -2
- package/language/location.js.flow +2 -2
- package/language/location.mjs +2 -2
- package/language/parser.js +75 -67
- package/language/parser.js.flow +138 -127
- package/language/parser.mjs +76 -68
- package/language/predicates.js +2 -2
- package/language/predicates.js.flow +2 -2
- package/language/predicates.mjs +2 -2
- package/language/printer.js +6 -14
- package/language/printer.js.flow +8 -17
- package/language/printer.mjs +5 -14
- package/language/source.js +2 -2
- package/language/source.js.flow +1 -1
- package/language/source.mjs +2 -2
- package/language/visitor.js +4 -6
- package/language/visitor.js.flow +3 -3
- package/language/visitor.mjs +4 -6
- package/package.json +1 -1
- package/polyfills/find.js +2 -2
- package/polyfills/find.js.flow +1 -1
- package/polyfills/find.mjs +2 -2
- package/polyfills/flatMap.js +38 -0
- package/polyfills/flatMap.js.flow +34 -0
- package/polyfills/flatMap.mjs +30 -0
- package/polyfills/isFinite.js +2 -2
- package/polyfills/isFinite.js.flow +1 -1
- package/polyfills/isFinite.mjs +2 -2
- package/polyfills/isInteger.js +2 -2
- package/polyfills/isInteger.js.flow +1 -1
- package/polyfills/isInteger.mjs +2 -2
- package/polyfills/objectEntries.js +2 -2
- package/polyfills/objectEntries.js.flow +2 -2
- package/polyfills/objectEntries.mjs +2 -2
- package/polyfills/objectValues.js +2 -2
- package/polyfills/objectValues.js.flow +2 -2
- package/polyfills/objectValues.mjs +2 -2
- package/subscription/asyncIteratorReject.js +1 -1
- package/subscription/asyncIteratorReject.js.flow +1 -1
- package/subscription/asyncIteratorReject.mjs +2 -2
- package/subscription/index.js +1 -1
- package/subscription/index.js.flow +1 -1
- package/subscription/index.mjs +2 -2
- package/subscription/mapAsyncIterator.js +1 -1
- package/subscription/mapAsyncIterator.js.flow +5 -5
- package/subscription/mapAsyncIterator.mjs +2 -2
- package/subscription/subscribe.js +2 -2
- package/subscription/subscribe.js.flow +6 -6
- package/subscription/subscribe.mjs +2 -2
- package/type/definition.js +138 -22
- package/type/definition.js.flow +184 -36
- package/type/definition.mjs +136 -23
- package/type/directives.js +14 -3
- package/type/directives.js.flow +24 -11
- package/type/directives.mjs +16 -5
- package/type/index.js +7 -7
- package/type/index.js.flow +8 -4
- package/type/index.mjs +10 -6
- package/type/introspection.js +14 -9
- package/type/introspection.js.flow +12 -18
- package/type/introspection.mjs +14 -9
- package/type/scalars.js +5 -4
- package/type/scalars.js.flow +4 -10
- package/type/scalars.mjs +7 -6
- package/type/schema.js +55 -3
- package/type/schema.js.flow +73 -17
- package/type/schema.mjs +56 -4
- package/type/validate.js +19 -47
- package/type/validate.js.flow +17 -29
- package/type/validate.mjs +18 -47
- package/utilities/TypeInfo.js +93 -73
- package/utilities/TypeInfo.js.flow +30 -23
- package/utilities/TypeInfo.mjs +93 -73
- package/utilities/assertValidName.js +2 -2
- package/utilities/assertValidName.js.flow +2 -2
- package/utilities/assertValidName.mjs +2 -2
- package/utilities/astFromValue.js +5 -4
- package/utilities/astFromValue.js.flow +8 -7
- package/utilities/astFromValue.mjs +7 -6
- package/utilities/buildASTSchema.js +63 -62
- package/utilities/buildASTSchema.js.flow +92 -108
- package/utilities/buildASTSchema.mjs +61 -62
- package/utilities/buildClientSchema.js +38 -45
- package/utilities/buildClientSchema.js.flow +66 -79
- package/utilities/buildClientSchema.mjs +37 -44
- package/utilities/coerceValue.js +6 -7
- package/utilities/coerceValue.js.flow +5 -4
- package/utilities/coerceValue.mjs +7 -8
- package/utilities/concatAST.js +9 -13
- package/utilities/concatAST.js.flow +4 -10
- package/utilities/concatAST.mjs +6 -13
- package/utilities/extendSchema.js +219 -511
- package/utilities/extendSchema.js.flow +195 -304
- package/utilities/extendSchema.mjs +218 -512
- package/utilities/findBreakingChanges.js +54 -95
- package/utilities/findBreakingChanges.js.flow +49 -47
- package/utilities/findBreakingChanges.mjs +80 -95
- package/utilities/findDeprecatedUsages.js +4 -4
- package/utilities/findDeprecatedUsages.js.flow +5 -5
- package/utilities/findDeprecatedUsages.mjs +4 -4
- package/utilities/getOperationAST.js +2 -2
- package/utilities/getOperationAST.js.flow +5 -2
- package/utilities/getOperationAST.mjs +2 -2
- package/utilities/getOperationRootType.js +24 -24
- package/utilities/getOperationRootType.js.flow +40 -35
- package/utilities/getOperationRootType.mjs +24 -24
- package/utilities/index.js +9 -1
- package/utilities/index.js.flow +13 -6
- package/utilities/index.mjs +13 -8
- package/utilities/introspectionFromSchema.js +6 -4
- package/utilities/introspectionFromSchema.js.flow +8 -7
- package/utilities/introspectionFromSchema.mjs +6 -5
- package/utilities/introspectionQuery.js +2 -2
- package/utilities/introspectionQuery.js.flow +2 -2
- package/utilities/introspectionQuery.mjs +2 -2
- package/utilities/isValidJSValue.js +4 -2
- package/utilities/isValidJSValue.js.flow +3 -2
- package/utilities/isValidJSValue.mjs +4 -2
- package/utilities/isValidLiteralValue.js +2 -2
- package/utilities/isValidLiteralValue.js.flow +4 -4
- package/utilities/isValidLiteralValue.mjs +2 -2
- package/utilities/lexicographicSortSchema.js +84 -123
- package/utilities/lexicographicSortSchema.js.flow +68 -96
- package/utilities/lexicographicSortSchema.mjs +84 -123
- package/utilities/schemaPrinter.js +47 -73
- package/utilities/schemaPrinter.js.flow +69 -120
- package/utilities/schemaPrinter.mjs +45 -72
- package/utilities/separateOperations.js +8 -12
- package/utilities/separateOperations.js.flow +6 -3
- package/utilities/separateOperations.mjs +8 -12
- package/utilities/stripIgnoredCharacters.js +140 -0
- package/utilities/stripIgnoredCharacters.js.flow +129 -0
- package/utilities/stripIgnoredCharacters.mjs +127 -0
- package/utilities/typeComparators.js +2 -2
- package/utilities/typeComparators.js.flow +4 -3
- package/utilities/typeComparators.mjs +2 -2
- package/utilities/typeFromAST.js +9 -4
- package/utilities/typeFromAST.js.flow +15 -9
- package/utilities/typeFromAST.mjs +6 -4
- package/utilities/valueFromAST.js +7 -4
- package/utilities/valueFromAST.js.flow +7 -5
- package/utilities/valueFromAST.mjs +6 -4
- package/utilities/valueFromASTUntyped.js +11 -6
- package/utilities/valueFromASTUntyped.js.flow +9 -5
- package/utilities/valueFromASTUntyped.mjs +10 -6
- package/validation/ValidationContext.js +1 -1
- package/validation/ValidationContext.js.flow +19 -20
- package/validation/ValidationContext.mjs +2 -2
- package/validation/index.js +1 -1
- package/validation/index.js.flow +2 -1
- package/validation/index.mjs +3 -2
- package/validation/rules/ExecutableDefinitions.js +3 -3
- package/validation/rules/ExecutableDefinitions.js.flow +4 -4
- package/validation/rules/ExecutableDefinitions.mjs +3 -3
- package/validation/rules/FieldsOnCorrectType.js +3 -3
- package/validation/rules/FieldsOnCorrectType.js.flow +7 -7
- package/validation/rules/FieldsOnCorrectType.mjs +3 -3
- package/validation/rules/FragmentsOnCompositeTypes.js +4 -4
- package/validation/rules/FragmentsOnCompositeTypes.js.flow +5 -5
- package/validation/rules/FragmentsOnCompositeTypes.mjs +4 -4
- package/validation/rules/KnownArgumentNames.js +1 -1
- package/validation/rules/KnownArgumentNames.js.flow +5 -5
- package/validation/rules/KnownArgumentNames.mjs +2 -2
- package/validation/rules/KnownDirectives.js +8 -6
- package/validation/rules/KnownDirectives.js.flow +11 -9
- package/validation/rules/KnownDirectives.mjs +8 -6
- package/validation/rules/KnownFragmentNames.js +3 -3
- package/validation/rules/KnownFragmentNames.js.flow +4 -4
- package/validation/rules/KnownFragmentNames.mjs +3 -3
- package/validation/rules/KnownTypeNames.js +2 -2
- package/validation/rules/KnownTypeNames.js.flow +6 -6
- package/validation/rules/KnownTypeNames.mjs +2 -2
- package/validation/rules/LoneAnonymousOperation.js +3 -3
- package/validation/rules/LoneAnonymousOperation.js.flow +4 -4
- package/validation/rules/LoneAnonymousOperation.mjs +3 -3
- package/validation/rules/LoneSchemaDefinition.js +2 -2
- package/validation/rules/LoneSchemaDefinition.js.flow +3 -3
- package/validation/rules/LoneSchemaDefinition.mjs +2 -2
- package/validation/rules/NoFragmentCycles.js +2 -2
- package/validation/rules/NoFragmentCycles.js.flow +4 -4
- package/validation/rules/NoFragmentCycles.mjs +2 -2
- package/validation/rules/NoUndefinedVariables.js +2 -2
- package/validation/rules/NoUndefinedVariables.js.flow +3 -3
- package/validation/rules/NoUndefinedVariables.mjs +2 -2
- package/validation/rules/NoUnusedFragments.js +7 -7
- package/validation/rules/NoUnusedFragments.js.flow +4 -4
- package/validation/rules/NoUnusedFragments.mjs +7 -7
- package/validation/rules/NoUnusedVariables.js +5 -5
- package/validation/rules/NoUnusedVariables.js.flow +6 -5
- package/validation/rules/NoUnusedVariables.mjs +5 -5
- package/validation/rules/OverlappingFieldsCanBeMerged.js +26 -23
- package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +17 -17
- package/validation/rules/OverlappingFieldsCanBeMerged.mjs +26 -23
- package/validation/rules/PossibleFragmentSpreads.js +4 -4
- package/validation/rules/PossibleFragmentSpreads.js.flow +5 -5
- package/validation/rules/PossibleFragmentSpreads.mjs +4 -4
- package/validation/rules/PossibleTypeExtensions.js +3 -3
- package/validation/rules/PossibleTypeExtensions.js.flow +5 -5
- package/validation/rules/PossibleTypeExtensions.mjs +4 -4
- package/validation/rules/ProvidedRequiredArguments.js +6 -8
- package/validation/rules/ProvidedRequiredArguments.js.flow +8 -8
- package/validation/rules/ProvidedRequiredArguments.mjs +7 -9
- package/validation/rules/ScalarLeafs.js +4 -4
- package/validation/rules/ScalarLeafs.js.flow +6 -6
- package/validation/rules/ScalarLeafs.mjs +4 -4
- package/validation/rules/SingleFieldSubscriptions.js +2 -2
- package/validation/rules/SingleFieldSubscriptions.js.flow +4 -4
- package/validation/rules/SingleFieldSubscriptions.mjs +2 -2
- package/validation/rules/UniqueArgumentNames.js +2 -2
- package/validation/rules/UniqueArgumentNames.js.flow +3 -3
- package/validation/rules/UniqueArgumentNames.mjs +2 -2
- package/validation/rules/UniqueDirectiveNames.js +2 -2
- package/validation/rules/UniqueDirectiveNames.js.flow +3 -3
- package/validation/rules/UniqueDirectiveNames.mjs +2 -2
- package/validation/rules/UniqueDirectivesPerLocation.js +3 -2
- package/validation/rules/UniqueDirectivesPerLocation.js.flow +4 -4
- package/validation/rules/UniqueDirectivesPerLocation.mjs +3 -2
- package/validation/rules/UniqueEnumValueNames.js +4 -8
- package/validation/rules/UniqueEnumValueNames.js.flow +6 -8
- package/validation/rules/UniqueEnumValueNames.mjs +4 -8
- package/validation/rules/UniqueFieldDefinitionNames.js +4 -8
- package/validation/rules/UniqueFieldDefinitionNames.js.flow +6 -8
- package/validation/rules/UniqueFieldDefinitionNames.mjs +4 -8
- package/validation/rules/UniqueFragmentNames.js +2 -2
- package/validation/rules/UniqueFragmentNames.js.flow +3 -3
- package/validation/rules/UniqueFragmentNames.mjs +2 -2
- package/validation/rules/UniqueInputFieldNames.js +2 -4
- package/validation/rules/UniqueInputFieldNames.js.flow +3 -4
- package/validation/rules/UniqueInputFieldNames.mjs +2 -4
- package/validation/rules/UniqueOperationNames.js +2 -2
- package/validation/rules/UniqueOperationNames.js.flow +3 -3
- package/validation/rules/UniqueOperationNames.mjs +2 -2
- package/validation/rules/UniqueOperationTypes.js +2 -2
- package/validation/rules/UniqueOperationTypes.js.flow +3 -3
- package/validation/rules/UniqueOperationTypes.mjs +2 -2
- package/validation/rules/UniqueTypeNames.js +2 -2
- package/validation/rules/UniqueTypeNames.js.flow +4 -4
- package/validation/rules/UniqueTypeNames.mjs +2 -2
- package/validation/rules/UniqueVariableNames.js +2 -2
- package/validation/rules/UniqueVariableNames.js.flow +4 -4
- package/validation/rules/UniqueVariableNames.mjs +2 -2
- package/validation/rules/ValuesOfCorrectType.js +2 -2
- package/validation/rules/ValuesOfCorrectType.js.flow +5 -5
- package/validation/rules/ValuesOfCorrectType.mjs +2 -2
- package/validation/rules/VariablesAreInputTypes.js +3 -3
- package/validation/rules/VariablesAreInputTypes.js.flow +5 -5
- package/validation/rules/VariablesAreInputTypes.mjs +3 -3
- package/validation/rules/VariablesInAllowedPosition.js +3 -3
- package/validation/rules/VariablesInAllowedPosition.js.flow +7 -8
- package/validation/rules/VariablesInAllowedPosition.mjs +3 -3
- package/validation/specifiedRules.js +2 -2
- package/validation/specifiedRules.js.flow +13 -6
- package/validation/specifiedRules.mjs +7 -7
- package/validation/validate.js +2 -2
- package/validation/validate.js.flow +10 -6
- package/validation/validate.mjs +2 -2
- package/jsutils/MaybePromise.js +0 -1
- package/jsutils/MaybePromise.mjs +0 -0
- package/language/blockStringValue.js +0 -73
- package/language/blockStringValue.js.flow +0 -64
- package/language/blockStringValue.mjs +0 -66
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -7,13 +7,21 @@
|
|
|
7
7
|
* @flow strict
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import flatMap from '../polyfills/flatMap';
|
|
10
11
|
import objectValues from '../polyfills/objectValues';
|
|
11
|
-
import
|
|
12
|
-
import isInvalid from '../jsutils/isInvalid';
|
|
12
|
+
import inspect from '../jsutils/inspect';
|
|
13
13
|
import { astFromValue } from '../utilities/astFromValue';
|
|
14
14
|
import { print } from '../language/printer';
|
|
15
|
-
import
|
|
15
|
+
import { printBlockString } from '../language/blockString';
|
|
16
|
+
import { type GraphQLSchema } from '../type/schema';
|
|
16
17
|
import {
|
|
18
|
+
type GraphQLNamedType,
|
|
19
|
+
type GraphQLScalarType,
|
|
20
|
+
type GraphQLEnumType,
|
|
21
|
+
type GraphQLObjectType,
|
|
22
|
+
type GraphQLInterfaceType,
|
|
23
|
+
type GraphQLUnionType,
|
|
24
|
+
type GraphQLInputObjectType,
|
|
17
25
|
isScalarType,
|
|
18
26
|
isObjectType,
|
|
19
27
|
isInterfaceType,
|
|
@@ -21,15 +29,6 @@ import {
|
|
|
21
29
|
isEnumType,
|
|
22
30
|
isInputObjectType,
|
|
23
31
|
} from '../type/definition';
|
|
24
|
-
import type {
|
|
25
|
-
GraphQLNamedType,
|
|
26
|
-
GraphQLScalarType,
|
|
27
|
-
GraphQLEnumType,
|
|
28
|
-
GraphQLObjectType,
|
|
29
|
-
GraphQLInterfaceType,
|
|
30
|
-
GraphQLUnionType,
|
|
31
|
-
GraphQLInputObjectType,
|
|
32
|
-
} from '../type/definition';
|
|
33
32
|
import { GraphQLString, isSpecifiedScalarType } from '../type/scalars';
|
|
34
33
|
import {
|
|
35
34
|
GraphQLDirective,
|
|
@@ -175,8 +174,10 @@ export function printType(type: GraphQLNamedType, options?: Options): string {
|
|
|
175
174
|
} else if (isInputObjectType(type)) {
|
|
176
175
|
return printInputObject(type, options);
|
|
177
176
|
}
|
|
177
|
+
|
|
178
|
+
// Not reachable. All possible types have been considered.
|
|
178
179
|
/* istanbul ignore next */
|
|
179
|
-
throw new Error(`
|
|
180
|
+
throw new Error(`Unexpected type: "${inspect((type: empty))}".`);
|
|
180
181
|
}
|
|
181
182
|
|
|
182
183
|
function printScalar(type: GraphQLScalarType, options): string {
|
|
@@ -190,82 +191,67 @@ function printObject(type: GraphQLObjectType, options): string {
|
|
|
190
191
|
: '';
|
|
191
192
|
return (
|
|
192
193
|
printDescription(options, type) +
|
|
193
|
-
`type ${type.name}${implementedInterfaces}
|
|
194
|
-
printFields(options, type)
|
|
195
|
-
'\n' +
|
|
196
|
-
'}'
|
|
194
|
+
`type ${type.name}${implementedInterfaces}` +
|
|
195
|
+
printFields(options, type)
|
|
197
196
|
);
|
|
198
197
|
}
|
|
199
198
|
|
|
200
199
|
function printInterface(type: GraphQLInterfaceType, options): string {
|
|
201
200
|
return (
|
|
202
201
|
printDescription(options, type) +
|
|
203
|
-
`interface ${type.name}
|
|
204
|
-
printFields(options, type)
|
|
205
|
-
'\n' +
|
|
206
|
-
'}'
|
|
202
|
+
`interface ${type.name}` +
|
|
203
|
+
printFields(options, type)
|
|
207
204
|
);
|
|
208
205
|
}
|
|
209
206
|
|
|
210
207
|
function printUnion(type: GraphQLUnionType, options): string {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
);
|
|
208
|
+
const types = type.getTypes();
|
|
209
|
+
const possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
|
|
210
|
+
return printDescription(options, type) + 'union ' + type.name + possibleTypes;
|
|
215
211
|
}
|
|
216
212
|
|
|
217
213
|
function printEnum(type: GraphQLEnumType, options): string {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
`enum ${type.name} {\n` +
|
|
221
|
-
printEnumValues(type.getValues(), options) +
|
|
222
|
-
'\n' +
|
|
223
|
-
'}'
|
|
224
|
-
);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
function printEnumValues(values, options): string {
|
|
228
|
-
return values
|
|
214
|
+
const values = type
|
|
215
|
+
.getValues()
|
|
229
216
|
.map(
|
|
230
217
|
(value, i) =>
|
|
231
218
|
printDescription(options, value, ' ', !i) +
|
|
232
219
|
' ' +
|
|
233
220
|
value.name +
|
|
234
221
|
printDeprecated(value),
|
|
235
|
-
)
|
|
236
|
-
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
return (
|
|
225
|
+
printDescription(options, type) + `enum ${type.name}` + printBlock(values)
|
|
226
|
+
);
|
|
237
227
|
}
|
|
238
228
|
|
|
239
229
|
function printInputObject(type: GraphQLInputObjectType, options): string {
|
|
240
|
-
const fields = objectValues(type.getFields())
|
|
230
|
+
const fields = objectValues(type.getFields()).map(
|
|
231
|
+
(f, i) =>
|
|
232
|
+
printDescription(options, f, ' ', !i) + ' ' + printInputValue(f),
|
|
233
|
+
);
|
|
241
234
|
return (
|
|
242
|
-
printDescription(options, type) +
|
|
243
|
-
`input ${type.name} {\n` +
|
|
244
|
-
fields
|
|
245
|
-
.map(
|
|
246
|
-
(f, i) =>
|
|
247
|
-
printDescription(options, f, ' ', !i) + ' ' + printInputValue(f),
|
|
248
|
-
)
|
|
249
|
-
.join('\n') +
|
|
250
|
-
'\n' +
|
|
251
|
-
'}'
|
|
235
|
+
printDescription(options, type) + `input ${type.name}` + printBlock(fields)
|
|
252
236
|
);
|
|
253
237
|
}
|
|
254
238
|
|
|
255
239
|
function printFields(options, type) {
|
|
256
|
-
const fields = objectValues(type.getFields())
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
240
|
+
const fields = objectValues(type.getFields()).map(
|
|
241
|
+
(f, i) =>
|
|
242
|
+
printDescription(options, f, ' ', !i) +
|
|
243
|
+
' ' +
|
|
244
|
+
f.name +
|
|
245
|
+
printArgs(options, f.args, ' ') +
|
|
246
|
+
': ' +
|
|
247
|
+
String(f.type) +
|
|
248
|
+
printDeprecated(f),
|
|
249
|
+
);
|
|
250
|
+
return printBlock(fields);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
function printBlock(items) {
|
|
254
|
+
return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
|
|
269
255
|
}
|
|
270
256
|
|
|
271
257
|
function printArgs(options, args, indentation = '') {
|
|
@@ -296,9 +282,10 @@ function printArgs(options, args, indentation = '') {
|
|
|
296
282
|
}
|
|
297
283
|
|
|
298
284
|
function printInputValue(arg) {
|
|
285
|
+
const defaultAST = astFromValue(arg.defaultValue, arg.type);
|
|
299
286
|
let argDecl = arg.name + ': ' + String(arg.type);
|
|
300
|
-
if (
|
|
301
|
-
argDecl += ` = ${print(
|
|
287
|
+
if (defaultAST) {
|
|
288
|
+
argDecl += ` = ${print(defaultAST)}`;
|
|
302
289
|
}
|
|
303
290
|
return argDecl;
|
|
304
291
|
}
|
|
@@ -319,16 +306,11 @@ function printDeprecated(fieldOrEnumVal) {
|
|
|
319
306
|
return '';
|
|
320
307
|
}
|
|
321
308
|
const reason = fieldOrEnumVal.deprecationReason;
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
reason
|
|
325
|
-
reason === DEFAULT_DEPRECATION_REASON
|
|
326
|
-
) {
|
|
327
|
-
return ' @deprecated';
|
|
309
|
+
const reasonAST = astFromValue(reason, GraphQLString);
|
|
310
|
+
if (reasonAST && reason !== '' && reason !== DEFAULT_DEPRECATION_REASON) {
|
|
311
|
+
return ' @deprecated(reason: ' + print(reasonAST) + ')';
|
|
328
312
|
}
|
|
329
|
-
return
|
|
330
|
-
' @deprecated(reason: ' + print(astFromValue(reason, GraphQLString)) + ')'
|
|
331
|
-
);
|
|
313
|
+
return ' @deprecated';
|
|
332
314
|
}
|
|
333
315
|
|
|
334
316
|
function printDescription(
|
|
@@ -346,37 +328,13 @@ function printDescription(
|
|
|
346
328
|
return printDescriptionWithComments(lines, indentation, firstInBlock);
|
|
347
329
|
}
|
|
348
330
|
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
// In some circumstances, a single line can be used for the description.
|
|
355
|
-
if (
|
|
356
|
-
lines.length === 1 &&
|
|
357
|
-
lines[0].length < 70 &&
|
|
358
|
-
lines[0][lines[0].length - 1] !== '"'
|
|
359
|
-
) {
|
|
360
|
-
return description + escapeQuote(lines[0]) + '"""\n';
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
// Format a multi-line block quote to account for leading space.
|
|
364
|
-
const hasLeadingSpace = lines[0][0] === ' ' || lines[0][0] === '\t';
|
|
365
|
-
if (!hasLeadingSpace) {
|
|
366
|
-
description += '\n';
|
|
367
|
-
}
|
|
368
|
-
for (let i = 0; i < lines.length; i++) {
|
|
369
|
-
if (i !== 0 || !hasLeadingSpace) {
|
|
370
|
-
description += indentation;
|
|
371
|
-
}
|
|
372
|
-
description += escapeQuote(lines[i]) + '\n';
|
|
373
|
-
}
|
|
374
|
-
description += indentation + '"""\n';
|
|
375
|
-
return description;
|
|
376
|
-
}
|
|
331
|
+
const text = lines.join('\n');
|
|
332
|
+
const preferMultipleLines = text.length > 70;
|
|
333
|
+
const blockString = printBlockString(text, '', preferMultipleLines);
|
|
334
|
+
const prefix =
|
|
335
|
+
indentation && !firstInBlock ? '\n' + indentation : indentation;
|
|
377
336
|
|
|
378
|
-
|
|
379
|
-
return line.replace(/"""/g, '\\"""');
|
|
337
|
+
return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
|
|
380
338
|
}
|
|
381
339
|
|
|
382
340
|
function printDescriptionWithComments(lines, indentation, firstInBlock) {
|
|
@@ -392,27 +350,18 @@ function printDescriptionWithComments(lines, indentation, firstInBlock) {
|
|
|
392
350
|
}
|
|
393
351
|
|
|
394
352
|
function descriptionLines(description: string, maxLen: number): Array<string> {
|
|
395
|
-
const lines = [];
|
|
396
353
|
const rawLines = description.split('\n');
|
|
397
|
-
|
|
398
|
-
if (
|
|
399
|
-
|
|
400
|
-
} else {
|
|
401
|
-
// For > 120 character long lines, cut at space boundaries into sublines
|
|
402
|
-
// of ~80 chars.
|
|
403
|
-
const sublines = breakLine(rawLines[i], maxLen);
|
|
404
|
-
for (let j = 0; j < sublines.length; j++) {
|
|
405
|
-
lines.push(sublines[j]);
|
|
406
|
-
}
|
|
354
|
+
return flatMap(rawLines, line => {
|
|
355
|
+
if (line.length < maxLen + 5) {
|
|
356
|
+
return line;
|
|
407
357
|
}
|
|
408
|
-
|
|
409
|
-
|
|
358
|
+
// For > 120 character long lines, cut at space boundaries into sublines
|
|
359
|
+
// of ~80 chars.
|
|
360
|
+
return breakLine(line, maxLen);
|
|
361
|
+
});
|
|
410
362
|
}
|
|
411
363
|
|
|
412
364
|
function breakLine(line: string, maxLen: number): Array<string> {
|
|
413
|
-
if (line.length < maxLen + 5) {
|
|
414
|
-
return [line];
|
|
415
|
-
}
|
|
416
365
|
const parts = line.split(new RegExp(`((?: |^).{15,${maxLen - 40}}(?= |$))`));
|
|
417
366
|
if (parts.length < 4) {
|
|
418
367
|
return [line];
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
+
import flatMap from '../polyfills/flatMap';
|
|
9
10
|
import objectValues from '../polyfills/objectValues';
|
|
10
|
-
import
|
|
11
|
-
import isInvalid from '../jsutils/isInvalid';
|
|
11
|
+
import inspect from '../jsutils/inspect';
|
|
12
12
|
import { astFromValue } from '../utilities/astFromValue';
|
|
13
13
|
import { print } from '../language/printer';
|
|
14
|
+
import { printBlockString } from '../language/blockString';
|
|
14
15
|
import { isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from '../type/definition';
|
|
15
16
|
import { GraphQLString, isSpecifiedScalarType } from '../type/scalars';
|
|
16
17
|
import { GraphQLDirective, DEFAULT_DEPRECATION_REASON, isSpecifiedDirective } from '../type/directives';
|
|
@@ -124,11 +125,12 @@ export function printType(type, options) {
|
|
|
124
125
|
return printEnum(type, options);
|
|
125
126
|
} else if (isInputObjectType(type)) {
|
|
126
127
|
return printInputObject(type, options);
|
|
127
|
-
}
|
|
128
|
+
} // Not reachable. All possible types have been considered.
|
|
129
|
+
|
|
128
130
|
/* istanbul ignore next */
|
|
129
131
|
|
|
130
132
|
|
|
131
|
-
throw new Error("
|
|
133
|
+
throw new Error("Unexpected type: \"".concat(inspect(type), "\"."));
|
|
132
134
|
}
|
|
133
135
|
|
|
134
136
|
function printScalar(type, options) {
|
|
@@ -140,39 +142,42 @@ function printObject(type, options) {
|
|
|
140
142
|
var implementedInterfaces = interfaces.length ? ' implements ' + interfaces.map(function (i) {
|
|
141
143
|
return i.name;
|
|
142
144
|
}).join(' & ') : '';
|
|
143
|
-
return printDescription(options, type) + "type ".concat(type.name).concat(implementedInterfaces
|
|
145
|
+
return printDescription(options, type) + "type ".concat(type.name).concat(implementedInterfaces) + printFields(options, type);
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
function printInterface(type, options) {
|
|
147
|
-
return printDescription(options, type) + "interface ".concat(type.name
|
|
149
|
+
return printDescription(options, type) + "interface ".concat(type.name) + printFields(options, type);
|
|
148
150
|
}
|
|
149
151
|
|
|
150
152
|
function printUnion(type, options) {
|
|
151
|
-
|
|
153
|
+
var types = type.getTypes();
|
|
154
|
+
var possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
|
|
155
|
+
return printDescription(options, type) + 'union ' + type.name + possibleTypes;
|
|
152
156
|
}
|
|
153
157
|
|
|
154
158
|
function printEnum(type, options) {
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
function printEnumValues(values, options) {
|
|
159
|
-
return values.map(function (value, i) {
|
|
159
|
+
var values = type.getValues().map(function (value, i) {
|
|
160
160
|
return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value);
|
|
161
|
-
})
|
|
161
|
+
});
|
|
162
|
+
return printDescription(options, type) + "enum ".concat(type.name) + printBlock(values);
|
|
162
163
|
}
|
|
163
164
|
|
|
164
165
|
function printInputObject(type, options) {
|
|
165
|
-
var fields = objectValues(type.getFields())
|
|
166
|
-
return printDescription(options, type) + "input ".concat(type.name, " {\n") + fields.map(function (f, i) {
|
|
166
|
+
var fields = objectValues(type.getFields()).map(function (f, i) {
|
|
167
167
|
return printDescription(options, f, ' ', !i) + ' ' + printInputValue(f);
|
|
168
|
-
})
|
|
168
|
+
});
|
|
169
|
+
return printDescription(options, type) + "input ".concat(type.name) + printBlock(fields);
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
function printFields(options, type) {
|
|
172
|
-
var fields = objectValues(type.getFields())
|
|
173
|
-
return fields.map(function (f, i) {
|
|
173
|
+
var fields = objectValues(type.getFields()).map(function (f, i) {
|
|
174
174
|
return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f);
|
|
175
|
-
})
|
|
175
|
+
});
|
|
176
|
+
return printBlock(fields);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
function printBlock(items) {
|
|
180
|
+
return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
|
|
176
181
|
}
|
|
177
182
|
|
|
178
183
|
function printArgs(options, args) {
|
|
@@ -195,10 +200,11 @@ function printArgs(options, args) {
|
|
|
195
200
|
}
|
|
196
201
|
|
|
197
202
|
function printInputValue(arg) {
|
|
203
|
+
var defaultAST = astFromValue(arg.defaultValue, arg.type);
|
|
198
204
|
var argDecl = arg.name + ': ' + String(arg.type);
|
|
199
205
|
|
|
200
|
-
if (
|
|
201
|
-
argDecl += " = ".concat(print(
|
|
206
|
+
if (defaultAST) {
|
|
207
|
+
argDecl += " = ".concat(print(defaultAST));
|
|
202
208
|
}
|
|
203
209
|
|
|
204
210
|
return argDecl;
|
|
@@ -214,12 +220,13 @@ function printDeprecated(fieldOrEnumVal) {
|
|
|
214
220
|
}
|
|
215
221
|
|
|
216
222
|
var reason = fieldOrEnumVal.deprecationReason;
|
|
223
|
+
var reasonAST = astFromValue(reason, GraphQLString);
|
|
217
224
|
|
|
218
|
-
if (
|
|
219
|
-
return ' @deprecated';
|
|
225
|
+
if (reasonAST && reason !== '' && reason !== DEFAULT_DEPRECATION_REASON) {
|
|
226
|
+
return ' @deprecated(reason: ' + print(reasonAST) + ')';
|
|
220
227
|
}
|
|
221
228
|
|
|
222
|
-
return ' @deprecated
|
|
229
|
+
return ' @deprecated';
|
|
223
230
|
}
|
|
224
231
|
|
|
225
232
|
function printDescription(options, def) {
|
|
@@ -236,33 +243,11 @@ function printDescription(options, def) {
|
|
|
236
243
|
return printDescriptionWithComments(lines, indentation, firstInBlock);
|
|
237
244
|
}
|
|
238
245
|
|
|
239
|
-
var
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
var hasLeadingSpace = lines[0][0] === ' ' || lines[0][0] === '\t';
|
|
247
|
-
|
|
248
|
-
if (!hasLeadingSpace) {
|
|
249
|
-
description += '\n';
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
for (var i = 0; i < lines.length; i++) {
|
|
253
|
-
if (i !== 0 || !hasLeadingSpace) {
|
|
254
|
-
description += indentation;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
description += escapeQuote(lines[i]) + '\n';
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
description += indentation + '"""\n';
|
|
261
|
-
return description;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
function escapeQuote(line) {
|
|
265
|
-
return line.replace(/"""/g, '\\"""');
|
|
246
|
+
var text = lines.join('\n');
|
|
247
|
+
var preferMultipleLines = text.length > 70;
|
|
248
|
+
var blockString = printBlockString(text, '', preferMultipleLines);
|
|
249
|
+
var prefix = indentation && !firstInBlock ? '\n' + indentation : indentation;
|
|
250
|
+
return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
|
|
266
251
|
}
|
|
267
252
|
|
|
268
253
|
function printDescriptionWithComments(lines, indentation, firstInBlock) {
|
|
@@ -280,31 +265,19 @@ function printDescriptionWithComments(lines, indentation, firstInBlock) {
|
|
|
280
265
|
}
|
|
281
266
|
|
|
282
267
|
function descriptionLines(description, maxLen) {
|
|
283
|
-
var lines = [];
|
|
284
268
|
var rawLines = description.split('\n');
|
|
269
|
+
return flatMap(rawLines, function (line) {
|
|
270
|
+
if (line.length < maxLen + 5) {
|
|
271
|
+
return line;
|
|
272
|
+
} // For > 120 character long lines, cut at space boundaries into sublines
|
|
273
|
+
// of ~80 chars.
|
|
285
274
|
|
|
286
|
-
for (var i = 0; i < rawLines.length; i++) {
|
|
287
|
-
if (rawLines[i] === '') {
|
|
288
|
-
lines.push(rawLines[i]);
|
|
289
|
-
} else {
|
|
290
|
-
// For > 120 character long lines, cut at space boundaries into sublines
|
|
291
|
-
// of ~80 chars.
|
|
292
|
-
var sublines = breakLine(rawLines[i], maxLen);
|
|
293
|
-
|
|
294
|
-
for (var j = 0; j < sublines.length; j++) {
|
|
295
|
-
lines.push(sublines[j]);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
275
|
|
|
300
|
-
|
|
276
|
+
return breakLine(line, maxLen);
|
|
277
|
+
});
|
|
301
278
|
}
|
|
302
279
|
|
|
303
280
|
function breakLine(line, maxLen) {
|
|
304
|
-
if (line.length < maxLen + 5) {
|
|
305
|
-
return [line];
|
|
306
|
-
}
|
|
307
|
-
|
|
308
281
|
var parts = line.split(new RegExp("((?: |^).{15,".concat(maxLen - 40, "}(?= |$))")));
|
|
309
282
|
|
|
310
283
|
if (parts.length < 4) {
|
|
@@ -318,4 +291,4 @@ function breakLine(line, maxLen) {
|
|
|
318
291
|
}
|
|
319
292
|
|
|
320
293
|
return sublines;
|
|
321
|
-
}
|
|
294
|
+
}
|
|
@@ -8,7 +8,7 @@ exports.separateOperations = separateOperations;
|
|
|
8
8
|
var _visitor = require("../language/visitor");
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Copyright (c)
|
|
11
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
12
12
|
*
|
|
13
13
|
* This source code is licensed under the MIT license found in the
|
|
14
14
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -50,8 +50,8 @@ function separateOperations(documentAST) {
|
|
|
50
50
|
|
|
51
51
|
var separatedDocumentASTs = Object.create(null);
|
|
52
52
|
|
|
53
|
-
for (var _i = 0; _i <
|
|
54
|
-
var operation =
|
|
53
|
+
for (var _i = 0, _operations = operations; _i < _operations.length; _i++) {
|
|
54
|
+
var operation = _operations[_i];
|
|
55
55
|
var operationName = opName(operation);
|
|
56
56
|
var dependencies = Object.create(null);
|
|
57
57
|
collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted
|
|
@@ -59,10 +59,8 @@ function separateOperations(documentAST) {
|
|
|
59
59
|
|
|
60
60
|
var definitions = [operation];
|
|
61
61
|
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
for (var _i2 = 0; _i2 < _arr.length; _i2++) {
|
|
65
|
-
var name = _arr[_i2];
|
|
62
|
+
for (var _i2 = 0, _Object$keys = Object.keys(dependencies); _i2 < _Object$keys.length; _i2++) {
|
|
63
|
+
var name = _Object$keys[_i2];
|
|
66
64
|
definitions.push(fragments[name]);
|
|
67
65
|
}
|
|
68
66
|
|
|
@@ -89,10 +87,8 @@ function collectTransitiveDependencies(collected, depGraph, fromName) {
|
|
|
89
87
|
var immediateDeps = depGraph[fromName];
|
|
90
88
|
|
|
91
89
|
if (immediateDeps) {
|
|
92
|
-
var
|
|
93
|
-
|
|
94
|
-
for (var _i3 = 0; _i3 < _arr2.length; _i3++) {
|
|
95
|
-
var toName = _arr2[_i3];
|
|
90
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(immediateDeps); _i3 < _Object$keys2.length; _i3++) {
|
|
91
|
+
var toName = _Object$keys2[_i3];
|
|
96
92
|
|
|
97
93
|
if (!collected[toName]) {
|
|
98
94
|
collected[toName] = true;
|
|
@@ -100,4 +96,4 @@ function collectTransitiveDependencies(collected, depGraph, fromName) {
|
|
|
100
96
|
}
|
|
101
97
|
}
|
|
102
98
|
}
|
|
103
|
-
}
|
|
99
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { visit } from '../language/visitor';
|
|
11
|
-
import type
|
|
12
|
-
import
|
|
11
|
+
import { type ObjMap } from '../jsutils/ObjMap';
|
|
12
|
+
import {
|
|
13
|
+
type DocumentNode,
|
|
14
|
+
type OperationDefinitionNode,
|
|
15
|
+
} from '../language/ast';
|
|
13
16
|
|
|
14
17
|
/**
|
|
15
18
|
* separateOperations accepts a single AST document which may contain many
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
@@ -42,8 +42,8 @@ export function separateOperations(documentAST) {
|
|
|
42
42
|
|
|
43
43
|
var separatedDocumentASTs = Object.create(null);
|
|
44
44
|
|
|
45
|
-
for (var _i = 0; _i <
|
|
46
|
-
var operation =
|
|
45
|
+
for (var _i = 0, _operations = operations; _i < _operations.length; _i++) {
|
|
46
|
+
var operation = _operations[_i];
|
|
47
47
|
var operationName = opName(operation);
|
|
48
48
|
var dependencies = Object.create(null);
|
|
49
49
|
collectTransitiveDependencies(dependencies, depGraph, operationName); // The list of definition nodes to be included for this operation, sorted
|
|
@@ -51,10 +51,8 @@ export function separateOperations(documentAST) {
|
|
|
51
51
|
|
|
52
52
|
var definitions = [operation];
|
|
53
53
|
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
for (var _i2 = 0; _i2 < _arr.length; _i2++) {
|
|
57
|
-
var name = _arr[_i2];
|
|
54
|
+
for (var _i2 = 0, _Object$keys = Object.keys(dependencies); _i2 < _Object$keys.length; _i2++) {
|
|
55
|
+
var name = _Object$keys[_i2];
|
|
58
56
|
definitions.push(fragments[name]);
|
|
59
57
|
}
|
|
60
58
|
|
|
@@ -81,10 +79,8 @@ function collectTransitiveDependencies(collected, depGraph, fromName) {
|
|
|
81
79
|
var immediateDeps = depGraph[fromName];
|
|
82
80
|
|
|
83
81
|
if (immediateDeps) {
|
|
84
|
-
var
|
|
85
|
-
|
|
86
|
-
for (var _i3 = 0; _i3 < _arr2.length; _i3++) {
|
|
87
|
-
var toName = _arr2[_i3];
|
|
82
|
+
for (var _i3 = 0, _Object$keys2 = Object.keys(immediateDeps); _i3 < _Object$keys2.length; _i3++) {
|
|
83
|
+
var toName = _Object$keys2[_i3];
|
|
88
84
|
|
|
89
85
|
if (!collected[toName]) {
|
|
90
86
|
collected[toName] = true;
|
|
@@ -92,4 +88,4 @@ function collectTransitiveDependencies(collected, depGraph, fromName) {
|
|
|
92
88
|
}
|
|
93
89
|
}
|
|
94
90
|
}
|
|
95
|
-
}
|
|
91
|
+
}
|