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
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import invariant from '../jsutils/invariant';
|
|
4
3
|
|
|
5
4
|
import { parse } from '../language/parser';
|
|
@@ -28,8 +27,10 @@ export function introspectionFromSchema(
|
|
|
28
27
|
options?: IntrospectionOptions,
|
|
29
28
|
): IntrospectionQuery {
|
|
30
29
|
const optionsWithDefaults = {
|
|
30
|
+
specifiedByUrl: true,
|
|
31
31
|
directiveIsRepeatable: true,
|
|
32
32
|
schemaDescription: true,
|
|
33
|
+
inputValueDeprecation: true,
|
|
33
34
|
...options,
|
|
34
35
|
};
|
|
35
36
|
|
|
@@ -20,8 +20,10 @@ import { getIntrospectionQuery } from "./getIntrospectionQuery.mjs";
|
|
|
20
20
|
|
|
21
21
|
export function introspectionFromSchema(schema, options) {
|
|
22
22
|
var optionsWithDefaults = _objectSpread({
|
|
23
|
+
specifiedByUrl: true,
|
|
23
24
|
directiveIsRepeatable: true,
|
|
24
|
-
schemaDescription: true
|
|
25
|
+
schemaDescription: true,
|
|
26
|
+
inputValueDeprecation: true
|
|
25
27
|
}, options);
|
|
26
28
|
|
|
27
29
|
var document = parse(getIntrospectionQuery(optionsWithDefaults));
|
|
@@ -5,21 +5,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.lexicographicSortSchema = lexicographicSortSchema;
|
|
7
7
|
|
|
8
|
-
var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
|
|
8
|
+
var _objectValues = _interopRequireDefault(require("../polyfills/objectValues.js"));
|
|
9
9
|
|
|
10
|
-
var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
|
|
10
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
11
11
|
|
|
12
|
-
var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
|
|
12
|
+
var _invariant = _interopRequireDefault(require("../jsutils/invariant.js"));
|
|
13
13
|
|
|
14
|
-
var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap"));
|
|
14
|
+
var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap.js"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _naturalCompare = _interopRequireDefault(require("../jsutils/naturalCompare.js"));
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _schema = require("../type/schema.js");
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _directives = require("../type/directives.js");
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _introspection = require("../type/introspection.js");
|
|
23
|
+
|
|
24
|
+
var _definition = require("../type/definition.js");
|
|
23
25
|
|
|
24
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
27
|
|
|
@@ -49,8 +51,10 @@ function lexicographicSortSchema(schema) {
|
|
|
49
51
|
|
|
50
52
|
function replaceType(type) {
|
|
51
53
|
if ((0, _definition.isListType)(type)) {
|
|
54
|
+
// $FlowFixMe[incompatible-return]
|
|
52
55
|
return new _definition.GraphQLList(replaceType(type.ofType));
|
|
53
56
|
} else if ((0, _definition.isNonNullType)(type)) {
|
|
57
|
+
// $FlowFixMe[incompatible-return]
|
|
54
58
|
return new _definition.GraphQLNonNull(replaceType(type.ofType));
|
|
55
59
|
}
|
|
56
60
|
|
|
@@ -193,6 +197,6 @@ function sortBy(array, mapToKey) {
|
|
|
193
197
|
return array.slice().sort(function (obj1, obj2) {
|
|
194
198
|
var key1 = mapToKey(obj1);
|
|
195
199
|
var key2 = mapToKey(obj2);
|
|
196
|
-
return
|
|
200
|
+
return (0, _naturalCompare.default)(key1, key2);
|
|
197
201
|
});
|
|
198
202
|
}
|
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import objectValues from '../polyfills/objectValues';
|
|
4
3
|
|
|
5
4
|
import type { ObjMap } from '../jsutils/ObjMap';
|
|
6
5
|
import inspect from '../jsutils/inspect';
|
|
7
6
|
import invariant from '../jsutils/invariant';
|
|
8
7
|
import keyValMap from '../jsutils/keyValMap';
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
import naturalCompare from '../jsutils/naturalCompare';
|
|
9
|
+
|
|
10
|
+
import type {
|
|
11
|
+
GraphQLType,
|
|
12
|
+
GraphQLNamedType,
|
|
13
|
+
GraphQLFieldConfigMap,
|
|
14
|
+
GraphQLFieldConfigArgumentMap,
|
|
15
|
+
GraphQLInputFieldConfigMap,
|
|
16
|
+
} from '../type/definition';
|
|
11
17
|
import { GraphQLSchema } from '../type/schema';
|
|
12
18
|
import { GraphQLDirective } from '../type/directives';
|
|
13
19
|
import { isIntrospectionType } from '../type/introspection';
|
|
14
20
|
import {
|
|
21
|
+
GraphQLList,
|
|
22
|
+
GraphQLNonNull,
|
|
15
23
|
GraphQLObjectType,
|
|
16
24
|
GraphQLInterfaceType,
|
|
17
25
|
GraphQLUnionType,
|
|
18
26
|
GraphQLEnumType,
|
|
19
27
|
GraphQLInputObjectType,
|
|
20
|
-
GraphQLList,
|
|
21
|
-
GraphQLNonNull,
|
|
22
28
|
isListType,
|
|
23
29
|
isNonNullType,
|
|
24
30
|
isScalarType,
|
|
@@ -51,10 +57,12 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
|
|
|
51
57
|
subscription: replaceMaybeType(schemaConfig.subscription),
|
|
52
58
|
});
|
|
53
59
|
|
|
54
|
-
function replaceType(type) {
|
|
60
|
+
function replaceType<T: GraphQLType>(type: T): T {
|
|
55
61
|
if (isListType(type)) {
|
|
62
|
+
// $FlowFixMe[incompatible-return]
|
|
56
63
|
return new GraphQLList(replaceType(type.ofType));
|
|
57
64
|
} else if (isNonNullType(type)) {
|
|
65
|
+
// $FlowFixMe[incompatible-return]
|
|
58
66
|
return new GraphQLNonNull(replaceType(type.ofType));
|
|
59
67
|
}
|
|
60
68
|
return replaceNamedType(type);
|
|
@@ -64,11 +72,11 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
|
|
|
64
72
|
return ((typeMap[type.name]: any): T);
|
|
65
73
|
}
|
|
66
74
|
|
|
67
|
-
function replaceMaybeType(maybeType) {
|
|
75
|
+
function replaceMaybeType<T: ?GraphQLNamedType>(maybeType: T): T {
|
|
68
76
|
return maybeType && replaceNamedType(maybeType);
|
|
69
77
|
}
|
|
70
78
|
|
|
71
|
-
function sortDirective(directive) {
|
|
79
|
+
function sortDirective(directive: GraphQLDirective) {
|
|
72
80
|
const config = directive.toConfig();
|
|
73
81
|
return new GraphQLDirective({
|
|
74
82
|
...config,
|
|
@@ -77,14 +85,14 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
|
|
|
77
85
|
});
|
|
78
86
|
}
|
|
79
87
|
|
|
80
|
-
function sortArgs(args) {
|
|
88
|
+
function sortArgs(args: GraphQLFieldConfigArgumentMap) {
|
|
81
89
|
return sortObjMap(args, (arg) => ({
|
|
82
90
|
...arg,
|
|
83
91
|
type: replaceType(arg.type),
|
|
84
92
|
}));
|
|
85
93
|
}
|
|
86
94
|
|
|
87
|
-
function sortFields(fieldsMap) {
|
|
95
|
+
function sortFields(fieldsMap: GraphQLFieldConfigMap<mixed, mixed>) {
|
|
88
96
|
return sortObjMap(fieldsMap, (field) => ({
|
|
89
97
|
...field,
|
|
90
98
|
type: replaceType(field.type),
|
|
@@ -92,7 +100,7 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
|
|
|
92
100
|
}));
|
|
93
101
|
}
|
|
94
102
|
|
|
95
|
-
function sortInputFields(fieldsMap) {
|
|
103
|
+
function sortInputFields(fieldsMap: GraphQLInputFieldConfigMap) {
|
|
96
104
|
return sortObjMap(fieldsMap, (field) => ({
|
|
97
105
|
...field,
|
|
98
106
|
type: replaceType(field.type),
|
|
@@ -103,7 +111,7 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
|
|
|
103
111
|
return sortByName(arr).map(replaceNamedType);
|
|
104
112
|
}
|
|
105
113
|
|
|
106
|
-
function sortNamedType(type) {
|
|
114
|
+
function sortNamedType(type: GraphQLNamedType): GraphQLNamedType {
|
|
107
115
|
if (isScalarType(type) || isIntrospectionType(type)) {
|
|
108
116
|
return type;
|
|
109
117
|
}
|
|
@@ -174,6 +182,6 @@ function sortBy<T>(
|
|
|
174
182
|
return array.slice().sort((obj1, obj2) => {
|
|
175
183
|
const key1 = mapToKey(obj1);
|
|
176
184
|
const key2 = mapToKey(obj2);
|
|
177
|
-
return key1
|
|
185
|
+
return naturalCompare(key1, key2);
|
|
178
186
|
});
|
|
179
187
|
}
|
|
@@ -8,10 +8,11 @@ import objectValues from "../polyfills/objectValues.mjs";
|
|
|
8
8
|
import inspect from "../jsutils/inspect.mjs";
|
|
9
9
|
import invariant from "../jsutils/invariant.mjs";
|
|
10
10
|
import keyValMap from "../jsutils/keyValMap.mjs";
|
|
11
|
+
import naturalCompare from "../jsutils/naturalCompare.mjs";
|
|
11
12
|
import { GraphQLSchema } from "../type/schema.mjs";
|
|
12
13
|
import { GraphQLDirective } from "../type/directives.mjs";
|
|
13
14
|
import { isIntrospectionType } from "../type/introspection.mjs";
|
|
14
|
-
import { GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType,
|
|
15
|
+
import { GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, isListType, isNonNullType, isScalarType, isObjectType, isInterfaceType, isUnionType, isEnumType, isInputObjectType } from "../type/definition.mjs";
|
|
15
16
|
/**
|
|
16
17
|
* Sort GraphQLSchema.
|
|
17
18
|
*
|
|
@@ -33,8 +34,10 @@ export function lexicographicSortSchema(schema) {
|
|
|
33
34
|
|
|
34
35
|
function replaceType(type) {
|
|
35
36
|
if (isListType(type)) {
|
|
37
|
+
// $FlowFixMe[incompatible-return]
|
|
36
38
|
return new GraphQLList(replaceType(type.ofType));
|
|
37
39
|
} else if (isNonNullType(type)) {
|
|
40
|
+
// $FlowFixMe[incompatible-return]
|
|
38
41
|
return new GraphQLNonNull(replaceType(type.ofType));
|
|
39
42
|
}
|
|
40
43
|
|
|
@@ -177,6 +180,6 @@ function sortBy(array, mapToKey) {
|
|
|
177
180
|
return array.slice().sort(function (obj1, obj2) {
|
|
178
181
|
var key1 = mapToKey(obj1);
|
|
179
182
|
var key2 = mapToKey(obj2);
|
|
180
|
-
return key1
|
|
183
|
+
return naturalCompare(key1, key2);
|
|
181
184
|
});
|
|
182
185
|
}
|
package/utilities/printSchema.js
CHANGED
|
@@ -7,25 +7,25 @@ exports.printSchema = printSchema;
|
|
|
7
7
|
exports.printIntrospectionSchema = printIntrospectionSchema;
|
|
8
8
|
exports.printType = printType;
|
|
9
9
|
|
|
10
|
-
var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
|
|
10
|
+
var _objectValues = _interopRequireDefault(require("../polyfills/objectValues.js"));
|
|
11
11
|
|
|
12
|
-
var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
|
|
12
|
+
var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
|
|
13
13
|
|
|
14
|
-
var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
|
|
14
|
+
var _invariant = _interopRequireDefault(require("../jsutils/invariant.js"));
|
|
15
15
|
|
|
16
|
-
var _printer = require("../language/printer");
|
|
16
|
+
var _printer = require("../language/printer.js");
|
|
17
17
|
|
|
18
|
-
var _blockString = require("../language/blockString");
|
|
18
|
+
var _blockString = require("../language/blockString.js");
|
|
19
19
|
|
|
20
|
-
var _introspection = require("../type/introspection");
|
|
20
|
+
var _introspection = require("../type/introspection.js");
|
|
21
21
|
|
|
22
|
-
var _scalars = require("../type/scalars");
|
|
22
|
+
var _scalars = require("../type/scalars.js");
|
|
23
23
|
|
|
24
|
-
var _directives = require("../type/directives");
|
|
24
|
+
var _directives = require("../type/directives.js");
|
|
25
25
|
|
|
26
|
-
var _definition = require("../type/definition");
|
|
26
|
+
var _definition = require("../type/definition.js");
|
|
27
27
|
|
|
28
|
-
var _astFromValue = require("./astFromValue");
|
|
28
|
+
var _astFromValue = require("./astFromValue.js");
|
|
29
29
|
|
|
30
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
31
|
|
|
@@ -179,7 +179,7 @@ function printUnion(type, options) {
|
|
|
179
179
|
|
|
180
180
|
function printEnum(type, options) {
|
|
181
181
|
var values = type.getValues().map(function (value, i) {
|
|
182
|
-
return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value);
|
|
182
|
+
return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value.deprecationReason);
|
|
183
183
|
});
|
|
184
184
|
return printDescription(options, type) + "enum ".concat(type.name) + printBlock(values);
|
|
185
185
|
}
|
|
@@ -193,7 +193,7 @@ function printInputObject(type, options) {
|
|
|
193
193
|
|
|
194
194
|
function printFields(options, type) {
|
|
195
195
|
var fields = (0, _objectValues.default)(type.getFields()).map(function (f, i) {
|
|
196
|
-
return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f);
|
|
196
|
+
return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f.deprecationReason);
|
|
197
197
|
});
|
|
198
198
|
return printBlock(fields);
|
|
199
199
|
}
|
|
@@ -229,19 +229,18 @@ function printInputValue(arg) {
|
|
|
229
229
|
argDecl += " = ".concat((0, _printer.print)(defaultAST));
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
return argDecl;
|
|
232
|
+
return argDecl + printDeprecated(arg.deprecationReason);
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
function printDirective(directive, options) {
|
|
236
236
|
return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + (directive.isRepeatable ? ' repeatable' : '') + ' on ' + directive.locations.join(' | ');
|
|
237
237
|
}
|
|
238
238
|
|
|
239
|
-
function printDeprecated(
|
|
240
|
-
if (
|
|
239
|
+
function printDeprecated(reason) {
|
|
240
|
+
if (reason == null) {
|
|
241
241
|
return '';
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
-
var reason = fieldOrEnumVal.deprecationReason;
|
|
245
244
|
var reasonAST = (0, _astFromValue.astFromValue)(reason, _scalars.GraphQLString);
|
|
246
245
|
|
|
247
246
|
if (reasonAST && reason !== _directives.DEFAULT_DEPRECATION_REASON) {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import objectValues from '../polyfills/objectValues';
|
|
4
3
|
|
|
5
4
|
import inspect from '../jsutils/inspect';
|
|
@@ -12,6 +11,8 @@ import type { GraphQLSchema } from '../type/schema';
|
|
|
12
11
|
import type { GraphQLDirective } from '../type/directives';
|
|
13
12
|
import type {
|
|
14
13
|
GraphQLNamedType,
|
|
14
|
+
GraphQLArgument,
|
|
15
|
+
GraphQLInputField,
|
|
15
16
|
GraphQLScalarType,
|
|
16
17
|
GraphQLEnumType,
|
|
17
18
|
GraphQLObjectType,
|
|
@@ -232,7 +233,7 @@ function printEnum(type: GraphQLEnumType, options): string {
|
|
|
232
233
|
printDescription(options, value, ' ', !i) +
|
|
233
234
|
' ' +
|
|
234
235
|
value.name +
|
|
235
|
-
printDeprecated(value),
|
|
236
|
+
printDeprecated(value.deprecationReason),
|
|
236
237
|
);
|
|
237
238
|
|
|
238
239
|
return (
|
|
@@ -250,7 +251,10 @@ function printInputObject(type: GraphQLInputObjectType, options): string {
|
|
|
250
251
|
);
|
|
251
252
|
}
|
|
252
253
|
|
|
253
|
-
function printFields(
|
|
254
|
+
function printFields(
|
|
255
|
+
options,
|
|
256
|
+
type: GraphQLObjectType | GraphQLInterfaceType,
|
|
257
|
+
): string {
|
|
254
258
|
const fields = objectValues(type.getFields()).map(
|
|
255
259
|
(f, i) =>
|
|
256
260
|
printDescription(options, f, ' ', !i) +
|
|
@@ -259,16 +263,20 @@ function printFields(options, type) {
|
|
|
259
263
|
printArgs(options, f.args, ' ') +
|
|
260
264
|
': ' +
|
|
261
265
|
String(f.type) +
|
|
262
|
-
printDeprecated(f),
|
|
266
|
+
printDeprecated(f.deprecationReason),
|
|
263
267
|
);
|
|
264
268
|
return printBlock(fields);
|
|
265
269
|
}
|
|
266
270
|
|
|
267
|
-
function printBlock(items) {
|
|
271
|
+
function printBlock(items: $ReadOnlyArray<string>): string {
|
|
268
272
|
return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
|
|
269
273
|
}
|
|
270
274
|
|
|
271
|
-
function printArgs(
|
|
275
|
+
function printArgs(
|
|
276
|
+
options,
|
|
277
|
+
args: Array<GraphQLArgument>,
|
|
278
|
+
indentation: string = '',
|
|
279
|
+
): string {
|
|
272
280
|
if (args.length === 0) {
|
|
273
281
|
return '';
|
|
274
282
|
}
|
|
@@ -295,16 +303,16 @@ function printArgs(options, args, indentation = '') {
|
|
|
295
303
|
);
|
|
296
304
|
}
|
|
297
305
|
|
|
298
|
-
function printInputValue(arg) {
|
|
306
|
+
function printInputValue(arg: GraphQLInputField): string {
|
|
299
307
|
const defaultAST = astFromValue(arg.defaultValue, arg.type);
|
|
300
308
|
let argDecl = arg.name + ': ' + String(arg.type);
|
|
301
309
|
if (defaultAST) {
|
|
302
310
|
argDecl += ` = ${print(defaultAST)}`;
|
|
303
311
|
}
|
|
304
|
-
return argDecl;
|
|
312
|
+
return argDecl + printDeprecated(arg.deprecationReason);
|
|
305
313
|
}
|
|
306
314
|
|
|
307
|
-
function printDirective(directive, options) {
|
|
315
|
+
function printDirective(directive: GraphQLDirective, options): string {
|
|
308
316
|
return (
|
|
309
317
|
printDescription(options, directive) +
|
|
310
318
|
'directive @' +
|
|
@@ -316,11 +324,10 @@ function printDirective(directive, options) {
|
|
|
316
324
|
);
|
|
317
325
|
}
|
|
318
326
|
|
|
319
|
-
function printDeprecated(
|
|
320
|
-
if (
|
|
327
|
+
function printDeprecated(reason: ?string): string {
|
|
328
|
+
if (reason == null) {
|
|
321
329
|
return '';
|
|
322
330
|
}
|
|
323
|
-
const reason = fieldOrEnumVal.deprecationReason;
|
|
324
331
|
const reasonAST = astFromValue(reason, GraphQLString);
|
|
325
332
|
if (reasonAST && reason !== DEFAULT_DEPRECATION_REASON) {
|
|
326
333
|
return ' @deprecated(reason: ' + print(reasonAST) + ')';
|
|
@@ -328,7 +335,7 @@ function printDeprecated(fieldOrEnumVal) {
|
|
|
328
335
|
return ' @deprecated';
|
|
329
336
|
}
|
|
330
337
|
|
|
331
|
-
function printSpecifiedByUrl(scalar: GraphQLScalarType) {
|
|
338
|
+
function printSpecifiedByUrl(scalar: GraphQLScalarType): string {
|
|
332
339
|
if (scalar.specifiedByUrl == null) {
|
|
333
340
|
return '';
|
|
334
341
|
}
|
|
@@ -343,9 +350,9 @@ function printSpecifiedByUrl(scalar: GraphQLScalarType) {
|
|
|
343
350
|
|
|
344
351
|
function printDescription(
|
|
345
352
|
options,
|
|
346
|
-
def,
|
|
347
|
-
indentation = '',
|
|
348
|
-
firstInBlock = true,
|
|
353
|
+
def: { +description: ?string, ... },
|
|
354
|
+
indentation: string = '',
|
|
355
|
+
firstInBlock: boolean = true,
|
|
349
356
|
): string {
|
|
350
357
|
const { description } = def;
|
|
351
358
|
if (description == null) {
|
|
@@ -158,7 +158,7 @@ function printUnion(type, options) {
|
|
|
158
158
|
|
|
159
159
|
function printEnum(type, options) {
|
|
160
160
|
var values = type.getValues().map(function (value, i) {
|
|
161
|
-
return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value);
|
|
161
|
+
return printDescription(options, value, ' ', !i) + ' ' + value.name + printDeprecated(value.deprecationReason);
|
|
162
162
|
});
|
|
163
163
|
return printDescription(options, type) + "enum ".concat(type.name) + printBlock(values);
|
|
164
164
|
}
|
|
@@ -172,7 +172,7 @@ function printInputObject(type, options) {
|
|
|
172
172
|
|
|
173
173
|
function printFields(options, type) {
|
|
174
174
|
var fields = objectValues(type.getFields()).map(function (f, i) {
|
|
175
|
-
return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f);
|
|
175
|
+
return printDescription(options, f, ' ', !i) + ' ' + f.name + printArgs(options, f.args, ' ') + ': ' + String(f.type) + printDeprecated(f.deprecationReason);
|
|
176
176
|
});
|
|
177
177
|
return printBlock(fields);
|
|
178
178
|
}
|
|
@@ -208,19 +208,18 @@ function printInputValue(arg) {
|
|
|
208
208
|
argDecl += " = ".concat(print(defaultAST));
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
return argDecl;
|
|
211
|
+
return argDecl + printDeprecated(arg.deprecationReason);
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
function printDirective(directive, options) {
|
|
215
215
|
return printDescription(options, directive) + 'directive @' + directive.name + printArgs(options, directive.args) + (directive.isRepeatable ? ' repeatable' : '') + ' on ' + directive.locations.join(' | ');
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
function printDeprecated(
|
|
219
|
-
if (
|
|
218
|
+
function printDeprecated(reason) {
|
|
219
|
+
if (reason == null) {
|
|
220
220
|
return '';
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
var reason = fieldOrEnumVal.deprecationReason;
|
|
224
223
|
var reasonAST = astFromValue(reason, GraphQLString);
|
|
225
224
|
|
|
226
225
|
if (reasonAST && reason !== DEFAULT_DEPRECATION_REASON) {
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.separateOperations = separateOperations;
|
|
7
7
|
|
|
8
|
-
var _kinds = require("../language/kinds");
|
|
8
|
+
var _kinds = require("../language/kinds.js");
|
|
9
9
|
|
|
10
|
-
var _visitor = require("../language/visitor");
|
|
10
|
+
var _visitor = require("../language/visitor.js");
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* separateOperations accepts a single AST document which may contain many
|
|
@@ -17,72 +17,76 @@ var _visitor = require("../language/visitor");
|
|
|
17
17
|
*/
|
|
18
18
|
function separateOperations(documentAST) {
|
|
19
19
|
var operations = [];
|
|
20
|
-
var depGraph = Object.create(null);
|
|
21
|
-
var fromName; // Populate metadata and build a dependency graph.
|
|
22
|
-
|
|
23
|
-
(0, _visitor.visit)(documentAST, {
|
|
24
|
-
OperationDefinition: function OperationDefinition(node) {
|
|
25
|
-
fromName = opName(node);
|
|
26
|
-
operations.push(node);
|
|
27
|
-
},
|
|
28
|
-
FragmentDefinition: function FragmentDefinition(node) {
|
|
29
|
-
fromName = node.name.value;
|
|
30
|
-
},
|
|
31
|
-
FragmentSpread: function FragmentSpread(node) {
|
|
32
|
-
var toName = node.name.value;
|
|
33
|
-
var dependents = depGraph[fromName];
|
|
20
|
+
var depGraph = Object.create(null); // Populate metadata and build a dependency graph.
|
|
34
21
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
22
|
+
for (var _i2 = 0, _documentAST$definiti2 = documentAST.definitions; _i2 < _documentAST$definiti2.length; _i2++) {
|
|
23
|
+
var definitionNode = _documentAST$definiti2[_i2];
|
|
38
24
|
|
|
39
|
-
|
|
25
|
+
switch (definitionNode.kind) {
|
|
26
|
+
case _kinds.Kind.OPERATION_DEFINITION:
|
|
27
|
+
operations.push(definitionNode);
|
|
28
|
+
break;
|
|
29
|
+
|
|
30
|
+
case _kinds.Kind.FRAGMENT_DEFINITION:
|
|
31
|
+
depGraph[definitionNode.name.value] = collectDependencies(definitionNode.selectionSet);
|
|
32
|
+
break;
|
|
40
33
|
}
|
|
41
|
-
}
|
|
34
|
+
} // For each operation, produce a new synthesized AST which includes only what
|
|
42
35
|
// is necessary for completing that operation.
|
|
43
36
|
|
|
37
|
+
|
|
44
38
|
var separatedDocumentASTs = Object.create(null);
|
|
45
39
|
|
|
46
|
-
var _loop = function _loop(
|
|
47
|
-
var operation = operations[
|
|
48
|
-
var
|
|
49
|
-
|
|
50
|
-
|
|
40
|
+
var _loop = function _loop(_i4) {
|
|
41
|
+
var operation = operations[_i4];
|
|
42
|
+
var dependencies = new Set();
|
|
43
|
+
|
|
44
|
+
for (var _i6 = 0, _collectDependencies2 = collectDependencies(operation.selectionSet); _i6 < _collectDependencies2.length; _i6++) {
|
|
45
|
+
var fragmentName = _collectDependencies2[_i6];
|
|
46
|
+
collectTransitiveDependencies(dependencies, depGraph, fragmentName);
|
|
47
|
+
} // Provides the empty string for anonymous operations.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
var operationName = operation.name ? operation.name.value : ''; // The list of definition nodes to be included for this operation, sorted
|
|
51
51
|
// to retain the same order as the original document.
|
|
52
52
|
|
|
53
53
|
separatedDocumentASTs[operationName] = {
|
|
54
54
|
kind: _kinds.Kind.DOCUMENT,
|
|
55
55
|
definitions: documentAST.definitions.filter(function (node) {
|
|
56
|
-
return node === operation || node.kind === _kinds.Kind.FRAGMENT_DEFINITION && dependencies
|
|
56
|
+
return node === operation || node.kind === _kinds.Kind.FRAGMENT_DEFINITION && dependencies.has(node.name.value);
|
|
57
57
|
})
|
|
58
58
|
};
|
|
59
59
|
};
|
|
60
60
|
|
|
61
|
-
for (var
|
|
62
|
-
_loop(
|
|
61
|
+
for (var _i4 = 0; _i4 < operations.length; _i4++) {
|
|
62
|
+
_loop(_i4);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
return separatedDocumentASTs;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
//
|
|
69
|
-
function opName(operation) {
|
|
70
|
-
return operation.name ? operation.name.value : '';
|
|
71
|
-
} // From a dependency graph, collects a list of transitive dependencies by
|
|
68
|
+
// From a dependency graph, collects a list of transitive dependencies by
|
|
72
69
|
// recursing through a dependency graph.
|
|
73
|
-
|
|
74
|
-
|
|
75
70
|
function collectTransitiveDependencies(collected, depGraph, fromName) {
|
|
76
|
-
|
|
71
|
+
if (!collected.has(fromName)) {
|
|
72
|
+
collected.add(fromName);
|
|
73
|
+
var immediateDeps = depGraph[fromName];
|
|
77
74
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (!collected[toName]) {
|
|
83
|
-
collected[toName] = true;
|
|
75
|
+
if (immediateDeps !== undefined) {
|
|
76
|
+
for (var _i8 = 0; _i8 < immediateDeps.length; _i8++) {
|
|
77
|
+
var toName = immediateDeps[_i8];
|
|
84
78
|
collectTransitiveDependencies(collected, depGraph, toName);
|
|
85
79
|
}
|
|
86
80
|
}
|
|
87
81
|
}
|
|
88
82
|
}
|
|
83
|
+
|
|
84
|
+
function collectDependencies(selectionSet) {
|
|
85
|
+
var dependencies = [];
|
|
86
|
+
(0, _visitor.visit)(selectionSet, {
|
|
87
|
+
FragmentSpread: function FragmentSpread(node) {
|
|
88
|
+
dependencies.push(node.name.value);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return dependencies;
|
|
92
|
+
}
|