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
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import objectValues from '../polyfills/objectValues';
|
|
4
3
|
|
|
5
4
|
import keyMap from '../jsutils/keyMap';
|
|
6
5
|
import inspect from '../jsutils/inspect';
|
|
7
6
|
import invariant from '../jsutils/invariant';
|
|
7
|
+
import naturalCompare from '../jsutils/naturalCompare';
|
|
8
8
|
|
|
9
9
|
import { print } from '../language/printer';
|
|
10
10
|
import { visit } from '../language/visitor';
|
|
@@ -543,8 +543,11 @@ function stringifyValue(value: mixed, type: GraphQLInputType): string {
|
|
|
543
543
|
|
|
544
544
|
const sortedAST = visit(ast, {
|
|
545
545
|
ObjectValue(objectNode) {
|
|
546
|
-
|
|
547
|
-
|
|
546
|
+
// Make a copy since sort mutates array
|
|
547
|
+
const fields = [...objectNode.fields];
|
|
548
|
+
|
|
549
|
+
fields.sort((fieldA, fieldB) =>
|
|
550
|
+
naturalCompare(fieldA.name.value, fieldB.name.value),
|
|
548
551
|
);
|
|
549
552
|
return { ...objectNode, fields };
|
|
550
553
|
},
|
|
@@ -8,6 +8,7 @@ import objectValues from "../polyfills/objectValues.mjs";
|
|
|
8
8
|
import keyMap from "../jsutils/keyMap.mjs";
|
|
9
9
|
import inspect from "../jsutils/inspect.mjs";
|
|
10
10
|
import invariant from "../jsutils/invariant.mjs";
|
|
11
|
+
import naturalCompare from "../jsutils/naturalCompare.mjs";
|
|
11
12
|
import { print } from "../language/printer.mjs";
|
|
12
13
|
import { visit } from "../language/visitor.mjs";
|
|
13
14
|
import { isSpecifiedScalarType } from "../type/scalars.mjs";
|
|
@@ -444,8 +445,10 @@ function stringifyValue(value, type) {
|
|
|
444
445
|
ast != null || invariant(0);
|
|
445
446
|
var sortedAST = visit(ast, {
|
|
446
447
|
ObjectValue: function ObjectValue(objectNode) {
|
|
447
|
-
|
|
448
|
-
|
|
448
|
+
// Make a copy since sort mutates array
|
|
449
|
+
var fields = [].concat(objectNode.fields);
|
|
450
|
+
fields.sort(function (fieldA, fieldB) {
|
|
451
|
+
return naturalCompare(fieldA.name.value, fieldB.name.value);
|
|
449
452
|
});
|
|
450
453
|
return _objectSpread(_objectSpread({}, objectNode), {}, {
|
|
451
454
|
fields: fields
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.findDeprecatedUsages = findDeprecatedUsages;
|
|
7
7
|
|
|
8
|
-
var _validate = require("../validation/validate");
|
|
8
|
+
var _validate = require("../validation/validate.js");
|
|
9
9
|
|
|
10
|
-
var _NoDeprecatedCustomRule = require("../validation/rules/custom/NoDeprecatedCustomRule");
|
|
10
|
+
var _NoDeprecatedCustomRule = require("../validation/rules/custom/NoDeprecatedCustomRule.js");
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* A validation rule which reports deprecated usages.
|
|
@@ -18,6 +18,10 @@ export interface IntrospectionOptions {
|
|
|
18
18
|
// Whether to include `description` field on schema.
|
|
19
19
|
// Default: false
|
|
20
20
|
schemaDescription?: boolean;
|
|
21
|
+
|
|
22
|
+
// Whether target GraphQL server support deprecation of input values.
|
|
23
|
+
// Default: false
|
|
24
|
+
inputValueDeprecation?: boolean;
|
|
21
25
|
}
|
|
22
26
|
|
|
23
27
|
export function getIntrospectionQuery(options?: IntrospectionOptions): string;
|
|
@@ -169,6 +173,8 @@ export interface IntrospectionInputValue {
|
|
|
169
173
|
readonly description?: Maybe<string>;
|
|
170
174
|
readonly type: IntrospectionInputTypeRef;
|
|
171
175
|
readonly defaultValue?: Maybe<string>;
|
|
176
|
+
readonly isDeprecated?: boolean;
|
|
177
|
+
readonly deprecationReason?: Maybe<string>;
|
|
172
178
|
}
|
|
173
179
|
|
|
174
180
|
export interface IntrospectionEnumValue {
|
|
@@ -16,12 +16,18 @@ function getIntrospectionQuery(options) {
|
|
|
16
16
|
descriptions: true,
|
|
17
17
|
specifiedByUrl: false,
|
|
18
18
|
directiveIsRepeatable: false,
|
|
19
|
-
schemaDescription: false
|
|
19
|
+
schemaDescription: false,
|
|
20
|
+
inputValueDeprecation: false
|
|
20
21
|
}, options);
|
|
21
22
|
|
|
22
23
|
var descriptions = optionsWithDefault.descriptions ? 'description' : '';
|
|
23
24
|
var specifiedByUrl = optionsWithDefault.specifiedByUrl ? 'specifiedByUrl' : '';
|
|
24
25
|
var directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable ? 'isRepeatable' : '';
|
|
25
26
|
var schemaDescription = optionsWithDefault.schemaDescription ? descriptions : '';
|
|
26
|
-
|
|
27
|
+
|
|
28
|
+
function inputDeprecation(str) {
|
|
29
|
+
return optionsWithDefault.inputValueDeprecation ? str : '';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return "\n query IntrospectionQuery {\n __schema {\n ".concat(schemaDescription, "\n queryType { name }\n mutationType { name }\n subscriptionType { name }\n types {\n ...FullType\n }\n directives {\n name\n ").concat(descriptions, "\n ").concat(directiveIsRepeatable, "\n locations\n args").concat(inputDeprecation('(includeDeprecated: true)'), " {\n ...InputValue\n }\n }\n }\n }\n\n fragment FullType on __Type {\n kind\n name\n ").concat(descriptions, "\n ").concat(specifiedByUrl, "\n fields(includeDeprecated: true) {\n name\n ").concat(descriptions, "\n args").concat(inputDeprecation('(includeDeprecated: true)'), " {\n ...InputValue\n }\n type {\n ...TypeRef\n }\n isDeprecated\n deprecationReason\n }\n inputFields").concat(inputDeprecation('(includeDeprecated: true)'), " {\n ...InputValue\n }\n interfaces {\n ...TypeRef\n }\n enumValues(includeDeprecated: true) {\n name\n ").concat(descriptions, "\n isDeprecated\n deprecationReason\n }\n possibleTypes {\n ...TypeRef\n }\n }\n\n fragment InputValue on __InputValue {\n name\n ").concat(descriptions, "\n type { ...TypeRef }\n defaultValue\n ").concat(inputDeprecation('isDeprecated'), "\n ").concat(inputDeprecation('deprecationReason'), "\n }\n\n fragment TypeRef on __Type {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n }\n ");
|
|
27
33
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @flow strict
|
|
2
|
-
|
|
3
2
|
import type { DirectiveLocationEnum } from '../language/directiveLocation';
|
|
4
3
|
|
|
5
4
|
export type IntrospectionOptions = {|
|
|
@@ -18,6 +17,10 @@ export type IntrospectionOptions = {|
|
|
|
18
17
|
// Whether to include `description` field on schema.
|
|
19
18
|
// Default: false
|
|
20
19
|
schemaDescription?: boolean,
|
|
20
|
+
|
|
21
|
+
// Whether target GraphQL server support deprecation of input values.
|
|
22
|
+
// Default: false
|
|
23
|
+
inputValueDeprecation?: boolean,
|
|
21
24
|
|};
|
|
22
25
|
|
|
23
26
|
export function getIntrospectionQuery(options?: IntrospectionOptions): string {
|
|
@@ -26,6 +29,7 @@ export function getIntrospectionQuery(options?: IntrospectionOptions): string {
|
|
|
26
29
|
specifiedByUrl: false,
|
|
27
30
|
directiveIsRepeatable: false,
|
|
28
31
|
schemaDescription: false,
|
|
32
|
+
inputValueDeprecation: false,
|
|
29
33
|
...options,
|
|
30
34
|
};
|
|
31
35
|
|
|
@@ -40,6 +44,10 @@ export function getIntrospectionQuery(options?: IntrospectionOptions): string {
|
|
|
40
44
|
? descriptions
|
|
41
45
|
: '';
|
|
42
46
|
|
|
47
|
+
function inputDeprecation(str) {
|
|
48
|
+
return optionsWithDefault.inputValueDeprecation ? str : '';
|
|
49
|
+
}
|
|
50
|
+
|
|
43
51
|
return `
|
|
44
52
|
query IntrospectionQuery {
|
|
45
53
|
__schema {
|
|
@@ -55,7 +63,7 @@ export function getIntrospectionQuery(options?: IntrospectionOptions): string {
|
|
|
55
63
|
${descriptions}
|
|
56
64
|
${directiveIsRepeatable}
|
|
57
65
|
locations
|
|
58
|
-
args {
|
|
66
|
+
args${inputDeprecation('(includeDeprecated: true)')} {
|
|
59
67
|
...InputValue
|
|
60
68
|
}
|
|
61
69
|
}
|
|
@@ -70,7 +78,7 @@ export function getIntrospectionQuery(options?: IntrospectionOptions): string {
|
|
|
70
78
|
fields(includeDeprecated: true) {
|
|
71
79
|
name
|
|
72
80
|
${descriptions}
|
|
73
|
-
args {
|
|
81
|
+
args${inputDeprecation('(includeDeprecated: true)')} {
|
|
74
82
|
...InputValue
|
|
75
83
|
}
|
|
76
84
|
type {
|
|
@@ -79,7 +87,7 @@ export function getIntrospectionQuery(options?: IntrospectionOptions): string {
|
|
|
79
87
|
isDeprecated
|
|
80
88
|
deprecationReason
|
|
81
89
|
}
|
|
82
|
-
inputFields {
|
|
90
|
+
inputFields${inputDeprecation('(includeDeprecated: true)')} {
|
|
83
91
|
...InputValue
|
|
84
92
|
}
|
|
85
93
|
interfaces {
|
|
@@ -101,6 +109,8 @@ export function getIntrospectionQuery(options?: IntrospectionOptions): string {
|
|
|
101
109
|
${descriptions}
|
|
102
110
|
type { ...TypeRef }
|
|
103
111
|
defaultValue
|
|
112
|
+
${inputDeprecation('isDeprecated')}
|
|
113
|
+
${inputDeprecation('deprecationReason')}
|
|
104
114
|
}
|
|
105
115
|
|
|
106
116
|
fragment TypeRef on __Type {
|
|
@@ -175,7 +185,7 @@ export type IntrospectionScalarType = {|
|
|
|
175
185
|
+kind: 'SCALAR',
|
|
176
186
|
+name: string,
|
|
177
187
|
+description?: ?string,
|
|
178
|
-
+specifiedByUrl
|
|
188
|
+
+specifiedByUrl?: ?string,
|
|
179
189
|
|};
|
|
180
190
|
|
|
181
191
|
export type IntrospectionObjectType = {|
|
|
@@ -282,6 +292,8 @@ export type IntrospectionInputValue = {|
|
|
|
282
292
|
+description?: ?string,
|
|
283
293
|
+type: IntrospectionInputTypeRef,
|
|
284
294
|
+defaultValue: ?string,
|
|
295
|
+
+isDeprecated?: boolean,
|
|
296
|
+
+deprecationReason?: ?string,
|
|
285
297
|
|};
|
|
286
298
|
|
|
287
299
|
export type IntrospectionEnumValue = {|
|
|
@@ -9,12 +9,18 @@ export function getIntrospectionQuery(options) {
|
|
|
9
9
|
descriptions: true,
|
|
10
10
|
specifiedByUrl: false,
|
|
11
11
|
directiveIsRepeatable: false,
|
|
12
|
-
schemaDescription: false
|
|
12
|
+
schemaDescription: false,
|
|
13
|
+
inputValueDeprecation: false
|
|
13
14
|
}, options);
|
|
14
15
|
|
|
15
16
|
var descriptions = optionsWithDefault.descriptions ? 'description' : '';
|
|
16
17
|
var specifiedByUrl = optionsWithDefault.specifiedByUrl ? 'specifiedByUrl' : '';
|
|
17
18
|
var directiveIsRepeatable = optionsWithDefault.directiveIsRepeatable ? 'isRepeatable' : '';
|
|
18
19
|
var schemaDescription = optionsWithDefault.schemaDescription ? descriptions : '';
|
|
19
|
-
|
|
20
|
+
|
|
21
|
+
function inputDeprecation(str) {
|
|
22
|
+
return optionsWithDefault.inputValueDeprecation ? str : '';
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return "\n query IntrospectionQuery {\n __schema {\n ".concat(schemaDescription, "\n queryType { name }\n mutationType { name }\n subscriptionType { name }\n types {\n ...FullType\n }\n directives {\n name\n ").concat(descriptions, "\n ").concat(directiveIsRepeatable, "\n locations\n args").concat(inputDeprecation('(includeDeprecated: true)'), " {\n ...InputValue\n }\n }\n }\n }\n\n fragment FullType on __Type {\n kind\n name\n ").concat(descriptions, "\n ").concat(specifiedByUrl, "\n fields(includeDeprecated: true) {\n name\n ").concat(descriptions, "\n args").concat(inputDeprecation('(includeDeprecated: true)'), " {\n ...InputValue\n }\n type {\n ...TypeRef\n }\n isDeprecated\n deprecationReason\n }\n inputFields").concat(inputDeprecation('(includeDeprecated: true)'), " {\n ...InputValue\n }\n interfaces {\n ...TypeRef\n }\n enumValues(includeDeprecated: true) {\n name\n ").concat(descriptions, "\n isDeprecated\n deprecationReason\n }\n possibleTypes {\n ...TypeRef\n }\n }\n\n fragment InputValue on __InputValue {\n name\n ").concat(descriptions, "\n type { ...TypeRef }\n defaultValue\n ").concat(inputDeprecation('isDeprecated'), "\n ").concat(inputDeprecation('deprecationReason'), "\n }\n\n fragment TypeRef on __Type {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n }\n ");
|
|
20
26
|
}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getOperationAST = getOperationAST;
|
|
7
7
|
|
|
8
|
-
var _kinds = require("../language/kinds");
|
|
8
|
+
var _kinds = require("../language/kinds.js");
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Returns an operation AST given a document AST and optionally an operation
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getOperationRootType = getOperationRootType;
|
|
7
7
|
|
|
8
|
-
var _GraphQLError = require("../error/GraphQLError");
|
|
8
|
+
var _GraphQLError = require("../error/GraphQLError.js");
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Extracts the root type of the operation from the schema.
|
package/utilities/index.d.ts
CHANGED
|
@@ -112,5 +112,8 @@ export {
|
|
|
112
112
|
DangerousChange,
|
|
113
113
|
} from './findBreakingChanges';
|
|
114
114
|
|
|
115
|
+
// Wrapper type that contains DocumentNode and types that can be deduced from it.
|
|
116
|
+
export { TypedQueryDocumentNode } from './typedQueryDocumentNode';
|
|
117
|
+
|
|
115
118
|
// @deprecated: Report all deprecated usage within a GraphQL document.
|
|
116
119
|
export { findDeprecatedUsages } from './findDeprecatedUsages';
|
package/utilities/index.js
CHANGED
|
@@ -202,46 +202,46 @@ Object.defineProperty(exports, "findDeprecatedUsages", {
|
|
|
202
202
|
}
|
|
203
203
|
});
|
|
204
204
|
|
|
205
|
-
var _getIntrospectionQuery = require("./getIntrospectionQuery");
|
|
205
|
+
var _getIntrospectionQuery = require("./getIntrospectionQuery.js");
|
|
206
206
|
|
|
207
|
-
var _getOperationAST = require("./getOperationAST");
|
|
207
|
+
var _getOperationAST = require("./getOperationAST.js");
|
|
208
208
|
|
|
209
|
-
var _getOperationRootType = require("./getOperationRootType");
|
|
209
|
+
var _getOperationRootType = require("./getOperationRootType.js");
|
|
210
210
|
|
|
211
|
-
var _introspectionFromSchema = require("./introspectionFromSchema");
|
|
211
|
+
var _introspectionFromSchema = require("./introspectionFromSchema.js");
|
|
212
212
|
|
|
213
|
-
var _buildClientSchema = require("./buildClientSchema");
|
|
213
|
+
var _buildClientSchema = require("./buildClientSchema.js");
|
|
214
214
|
|
|
215
|
-
var _buildASTSchema = require("./buildASTSchema");
|
|
215
|
+
var _buildASTSchema = require("./buildASTSchema.js");
|
|
216
216
|
|
|
217
|
-
var _extendSchema = require("./extendSchema");
|
|
217
|
+
var _extendSchema = require("./extendSchema.js");
|
|
218
218
|
|
|
219
|
-
var _lexicographicSortSchema = require("./lexicographicSortSchema");
|
|
219
|
+
var _lexicographicSortSchema = require("./lexicographicSortSchema.js");
|
|
220
220
|
|
|
221
|
-
var _printSchema = require("./printSchema");
|
|
221
|
+
var _printSchema = require("./printSchema.js");
|
|
222
222
|
|
|
223
|
-
var _typeFromAST = require("./typeFromAST");
|
|
223
|
+
var _typeFromAST = require("./typeFromAST.js");
|
|
224
224
|
|
|
225
|
-
var _valueFromAST = require("./valueFromAST");
|
|
225
|
+
var _valueFromAST = require("./valueFromAST.js");
|
|
226
226
|
|
|
227
|
-
var _valueFromASTUntyped = require("./valueFromASTUntyped");
|
|
227
|
+
var _valueFromASTUntyped = require("./valueFromASTUntyped.js");
|
|
228
228
|
|
|
229
|
-
var _astFromValue = require("./astFromValue");
|
|
229
|
+
var _astFromValue = require("./astFromValue.js");
|
|
230
230
|
|
|
231
|
-
var _TypeInfo = require("./TypeInfo");
|
|
231
|
+
var _TypeInfo = require("./TypeInfo.js");
|
|
232
232
|
|
|
233
|
-
var _coerceInputValue = require("./coerceInputValue");
|
|
233
|
+
var _coerceInputValue = require("./coerceInputValue.js");
|
|
234
234
|
|
|
235
|
-
var _concatAST = require("./concatAST");
|
|
235
|
+
var _concatAST = require("./concatAST.js");
|
|
236
236
|
|
|
237
|
-
var _separateOperations = require("./separateOperations");
|
|
237
|
+
var _separateOperations = require("./separateOperations.js");
|
|
238
238
|
|
|
239
|
-
var _stripIgnoredCharacters = require("./stripIgnoredCharacters");
|
|
239
|
+
var _stripIgnoredCharacters = require("./stripIgnoredCharacters.js");
|
|
240
240
|
|
|
241
|
-
var _typeComparators = require("./typeComparators");
|
|
241
|
+
var _typeComparators = require("./typeComparators.js");
|
|
242
242
|
|
|
243
|
-
var _assertValidName = require("./assertValidName");
|
|
243
|
+
var _assertValidName = require("./assertValidName.js");
|
|
244
244
|
|
|
245
|
-
var _findBreakingChanges = require("./findBreakingChanges");
|
|
245
|
+
var _findBreakingChanges = require("./findBreakingChanges.js");
|
|
246
246
|
|
|
247
|
-
var _findDeprecatedUsages = require("./findDeprecatedUsages");
|
|
247
|
+
var _findDeprecatedUsages = require("./findDeprecatedUsages.js");
|
package/utilities/index.js.flow
CHANGED
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.introspectionFromSchema = introspectionFromSchema;
|
|
7
7
|
|
|
8
|
-
var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
|
|
8
|
+
var _invariant = _interopRequireDefault(require("../jsutils/invariant.js"));
|
|
9
9
|
|
|
10
|
-
var _parser = require("../language/parser");
|
|
10
|
+
var _parser = require("../language/parser.js");
|
|
11
11
|
|
|
12
|
-
var _execute = require("../execution/execute");
|
|
12
|
+
var _execute = require("../execution/execute.js");
|
|
13
13
|
|
|
14
|
-
var _getIntrospectionQuery = require("./getIntrospectionQuery");
|
|
14
|
+
var _getIntrospectionQuery = require("./getIntrospectionQuery.js");
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
@@ -32,8 +32,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
32
32
|
*/
|
|
33
33
|
function introspectionFromSchema(schema, options) {
|
|
34
34
|
var optionsWithDefaults = _objectSpread({
|
|
35
|
+
specifiedByUrl: true,
|
|
35
36
|
directiveIsRepeatable: true,
|
|
36
|
-
schemaDescription: true
|
|
37
|
+
schemaDescription: true,
|
|
38
|
+
inputValueDeprecation: true
|
|
37
39
|
}, options);
|
|
38
40
|
|
|
39
41
|
var document = (0, _parser.parse)((0, _getIntrospectionQuery.getIntrospectionQuery)(optionsWithDefaults));
|
|
@@ -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
|
}
|