Skip to content

Commit c853294

Browse files
committed
Update other duplicated callsites in extendSchema and lexicographicSortSchema
1 parent 82490c0 commit c853294

File tree

8 files changed

+32
-72
lines changed

8 files changed

+32
-72
lines changed

src/index.d.ts

-2
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,12 @@ export {
160160
GraphQLField,
161161
GraphQLFieldConfig,
162162
GraphQLFieldExtensions,
163-
GraphQLFieldConfigArgumentMap,
164163
GraphQLFieldConfigMap,
165164
GraphQLFieldMap,
166165
GraphQLFieldResolver,
167166
GraphQLInputField,
168167
GraphQLInputFieldConfig,
169168
GraphQLInputFieldExtensions,
170-
GraphQLInputFieldConfigMap,
171169
GraphQLInputFieldMap,
172170
GraphQLInputObjectTypeConfig,
173171
GraphQLInputObjectTypeExtensions,

src/index.js

-2
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,11 @@ export type {
153153
GraphQLEnumValueConfigMap,
154154
GraphQLField,
155155
GraphQLFieldConfig,
156-
GraphQLFieldConfigArgumentMap,
157156
GraphQLFieldConfigMap,
158157
GraphQLFieldMap,
159158
GraphQLFieldResolver,
160159
GraphQLInputField,
161160
GraphQLInputFieldConfig,
162-
GraphQLInputFieldConfigMap,
163161
GraphQLInputFieldMap,
164162
GraphQLInputObjectTypeConfig,
165163
GraphQLInterfaceTypeConfig,

src/type/definition.d.ts

+2-6
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ export interface GraphQLFieldConfig<
516516
> {
517517
description?: Maybe<string>;
518518
type: GraphQLOutputType;
519-
args?: GraphQLFieldConfigArgumentMap;
519+
args?: ObjMap<GraphQLArgumentConfig>;
520520
resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>;
521521
subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>;
522522
deprecationReason?: Maybe<string>;
@@ -526,8 +526,6 @@ export interface GraphQLFieldConfig<
526526
astNode?: Maybe<FieldDefinitionNode>;
527527
}
528528

529-
export type GraphQLFieldConfigArgumentMap = ObjMap<GraphQLArgumentConfig>;
530-
531529
/**
532530
* Custom extensions
533531
*
@@ -885,7 +883,7 @@ export class GraphQLInputObjectType {
885883
getFields(): GraphQLInputFieldMap;
886884

887885
toConfig(): GraphQLInputObjectTypeConfig & {
888-
fields: GraphQLInputFieldConfigMap;
886+
fields: ObjMap<GraphQLInputFieldConfig>;
889887
extensions: Maybe<Readonly<GraphQLInputObjectTypeExtensions>>;
890888
extensionASTNodes: ReadonlyArray<InputObjectTypeExtensionNode>;
891889
};
@@ -920,8 +918,6 @@ export interface GraphQLInputFieldExtensions {
920918

921919
export type GraphQLInputFieldConfig = GraphQLInputValueConfig<GraphQLInputFieldExtensions>;
922920

923-
export type GraphQLInputFieldConfigMap = ObjMap<GraphQLInputFieldConfig>;
924-
925921
export type GraphQLInputField = GraphQLInputValue<GraphQLInputFieldExtensions>;
926922

927923
export function isRequiredInputField(field: GraphQLInputField): boolean;

src/type/definition.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -918,16 +918,14 @@ export type GraphQLFieldConfig<
918918
> = {|
919919
description?: ?string,
920920
type: GraphQLOutputType,
921-
args?: GraphQLFieldConfigArgumentMap,
921+
args?: ObjMap<GraphQLArgumentConfig>,
922922
resolve?: GraphQLFieldResolver<TSource, TContext, TArgs>,
923923
subscribe?: GraphQLFieldResolver<TSource, TContext, TArgs>,
924924
deprecationReason?: ?string,
925925
extensions?: ?ReadOnlyObjMapLike<mixed>,
926926
astNode?: ?FieldDefinitionNode,
927927
|};
928928

929-
export type GraphQLFieldConfigArgumentMap = ObjMap<GraphQLArgumentConfig>;
930-
931929
export type GraphQLArgumentConfig = GraphQLInputValueConfig;
932930

933931
export type GraphQLFieldConfigMap<TSource, TContext> = ObjMap<
@@ -1561,15 +1559,13 @@ export type GraphQLInputObjectTypeConfig = {|
15611559

15621560
type GraphQLInputObjectTypeNormalizedConfig = {|
15631561
...GraphQLInputObjectTypeConfig,
1564-
fields: GraphQLInputFieldConfigMap,
1562+
fields: ObjMap<GraphQLInputFieldConfig>,
15651563
extensions: ?ReadOnlyObjMap<mixed>,
15661564
extensionASTNodes: $ReadOnlyArray<InputObjectTypeExtensionNode>,
15671565
|};
15681566

15691567
export type GraphQLInputFieldConfig = GraphQLInputValueConfig;
15701568

1571-
export type GraphQLInputFieldConfigMap = ObjMap<GraphQLInputFieldConfig>;
1572-
15731569
export type GraphQLInputField = GraphQLInputValue;
15741570

15751571
export const isRequiredInputField = isRequiredInput;

src/type/index.d.ts

-2
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,12 @@ export {
9191
GraphQLEnumValueExtensions,
9292
GraphQLField,
9393
GraphQLFieldConfig,
94-
GraphQLFieldConfigArgumentMap,
9594
GraphQLFieldConfigMap,
9695
GraphQLFieldExtensions,
9796
GraphQLFieldMap,
9897
GraphQLFieldResolver,
9998
GraphQLInputField,
10099
GraphQLInputFieldConfig,
101-
GraphQLInputFieldConfigMap,
102100
GraphQLInputFieldExtensions,
103101
GraphQLInputFieldMap,
104102
GraphQLInputObjectTypeConfig,

src/type/index.js

-2
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,11 @@ export type {
143143
GraphQLEnumValueConfigMap,
144144
GraphQLField,
145145
GraphQLFieldConfig,
146-
GraphQLFieldConfigArgumentMap,
147146
GraphQLFieldConfigMap,
148147
GraphQLFieldMap,
149148
GraphQLFieldResolver,
150149
GraphQLInputField,
151150
GraphQLInputFieldConfig,
152-
GraphQLInputFieldConfigMap,
153151
GraphQLInputFieldMap,
154152
GraphQLInputObjectTypeConfig,
155153
GraphQLInterfaceTypeConfig,

src/utilities/extendSchema.js

+20-36
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { ObjMap } from '../jsutils/ObjMap';
12
import { keyMap } from '../jsutils/keyMap';
23
import { inspect } from '../jsutils/inspect';
34
import { mapValue } from '../jsutils/mapValue';
@@ -48,10 +49,9 @@ import type {
4849
GraphQLNamedType,
4950
GraphQLFieldConfig,
5051
GraphQLFieldConfigMap,
52+
GraphQLInputValueConfig,
5153
GraphQLArgumentConfig,
52-
GraphQLFieldConfigArgumentMap,
5354
GraphQLEnumValueConfigMap,
54-
GraphQLInputFieldConfigMap,
5555
} from '../type/definition';
5656
import { assertSchema, GraphQLSchema } from '../type/schema';
5757
import { specifiedScalarTypes, isSpecifiedScalarType } from '../type/scalars';
@@ -446,7 +446,7 @@ export function extendSchemaImpl(
446446
description: node.description?.value,
447447
locations,
448448
isRepeatable: node.repeatable,
449-
args: buildArgumentMap(node.arguments),
449+
args: buildInputValueMap(node.arguments),
450450
astNode: node,
451451
});
452452
}
@@ -471,7 +471,7 @@ export function extendSchemaImpl(
471471
// with validateSchema() will produce more actionable results.
472472
type: (getWrappedType(field.type): any),
473473
description: field.description?.value,
474-
args: buildArgumentMap(field.arguments),
474+
args: buildInputValueMap(field.arguments),
475475
deprecationReason: getDeprecationReason(field),
476476
astNode: field,
477477
};
@@ -480,54 +480,38 @@ export function extendSchemaImpl(
480480
return fieldConfigMap;
481481
}
482482

483-
function buildArgumentMap(
484-
args: ?$ReadOnlyArray<InputValueDefinitionNode>,
485-
): GraphQLFieldConfigArgumentMap {
483+
function buildInputValueMap(
484+
nodes: ?$ReadOnlyArray<InputValueDefinitionNode>,
485+
configMap: ObjMap<GraphQLInputValueConfig> = Object.create(null),
486+
): ObjMap<GraphQLInputValueConfig> {
486487
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
487-
const argsNodes = args ?? [];
488+
const inputNodes = nodes ?? [];
488489

489-
const argConfigMap = Object.create(null);
490-
for (const arg of argsNodes) {
490+
for (const node of inputNodes) {
491491
// Note: While this could make assertions to get the correctly typed
492492
// value, that would throw immediately while type system validation
493493
// with validateSchema() will produce more actionable results.
494-
const type: any = getWrappedType(arg.type);
494+
const type: any = getWrappedType(node.type);
495495

496-
argConfigMap[arg.name.value] = {
496+
configMap[node.name.value] = {
497497
type,
498-
description: arg.description?.value,
499-
defaultValue: valueFromAST(arg.defaultValue, type),
500-
deprecationReason: getDeprecationReason(arg),
501-
astNode: arg,
498+
description: node.description?.value,
499+
defaultValue: valueFromAST(node.defaultValue, type),
500+
deprecationReason: getDeprecationReason(node),
501+
astNode: node,
502502
};
503503
}
504-
return argConfigMap;
504+
return configMap;
505505
}
506506

507507
function buildInputFieldMap(
508508
nodes: $ReadOnlyArray<
509509
InputObjectTypeDefinitionNode | InputObjectTypeExtensionNode,
510510
>,
511-
): GraphQLInputFieldConfigMap {
512-
const inputFieldMap = Object.create(null);
511+
): ObjMap<GraphQLInputValueConfig> {
512+
let inputFieldMap = Object.create(null);
513513
for (const node of nodes) {
514-
// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')
515-
const fieldsNodes = node.fields ?? [];
516-
517-
for (const field of fieldsNodes) {
518-
// Note: While this could make assertions to get the correctly typed
519-
// value, that would throw immediately while type system validation
520-
// with validateSchema() will produce more actionable results.
521-
const type: any = getWrappedType(field.type);
522-
523-
inputFieldMap[field.name.value] = {
524-
type,
525-
description: field.description?.value,
526-
defaultValue: valueFromAST(field.defaultValue, type),
527-
deprecationReason: getDeprecationReason(field),
528-
astNode: field,
529-
};
530-
}
514+
inputFieldMap = buildInputValueMap(node.fields, inputFieldMap);
531515
}
532516
return inputFieldMap;
533517
}

src/utilities/lexicographicSortSchema.js

+8-16
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import type {
88
GraphQLType,
99
GraphQLNamedType,
1010
GraphQLFieldConfigMap,
11-
GraphQLFieldConfigArgumentMap,
12-
GraphQLInputFieldConfigMap,
11+
GraphQLInputValueConfig,
1312
} from '../type/definition';
1413
import { GraphQLSchema } from '../type/schema';
1514
import { GraphQLDirective } from '../type/directives';
@@ -78,29 +77,22 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
7877
return new GraphQLDirective({
7978
...config,
8079
locations: sortBy(config.locations, (x) => x),
81-
args: sortArgs(config.args),
80+
args: sortInputs(config.args),
8281
});
8382
}
8483

85-
function sortArgs(args: GraphQLFieldConfigArgumentMap) {
86-
return sortObjMap(args, (arg) => ({
87-
...arg,
88-
type: replaceType(arg.type),
84+
function sortInputs(inputs: ObjMap<GraphQLInputValueConfig>) {
85+
return sortObjMap(inputs, (input) => ({
86+
...input,
87+
type: replaceType(input.type),
8988
}));
9089
}
9190

9291
function sortFields(fieldsMap: GraphQLFieldConfigMap<mixed, mixed>) {
9392
return sortObjMap(fieldsMap, (field) => ({
9493
...field,
9594
type: replaceType(field.type),
96-
args: sortArgs(field.args),
97-
}));
98-
}
99-
100-
function sortInputFields(fieldsMap: GraphQLInputFieldConfigMap) {
101-
return sortObjMap(fieldsMap, (field) => ({
102-
...field,
103-
type: replaceType(field.type),
95+
args: sortInputs(field.args),
10496
}));
10597
}
10698

@@ -147,7 +139,7 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
147139
const config = type.toConfig();
148140
return new GraphQLInputObjectType({
149141
...config,
150-
fields: () => sortInputFields(config.fields),
142+
fields: () => sortInputs(config.fields),
151143
});
152144
}
153145

0 commit comments

Comments
 (0)