Skip to content

Commit 9830fda

Browse files
committed
Update other duplicated callsites in extendSchema and lexicographicSortSchema
1 parent 452e3e0 commit 9830fda

File tree

8 files changed

+32
-72
lines changed

8 files changed

+32
-72
lines changed

src/index.d.ts

Lines changed: 0 additions & 2 deletions
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

Lines changed: 0 additions & 2 deletions
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

Lines changed: 2 additions & 6 deletions
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

Lines changed: 2 additions & 6 deletions
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

Lines changed: 0 additions & 2 deletions
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

Lines changed: 0 additions & 2 deletions
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

Lines changed: 20 additions & 36 deletions
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';
@@ -47,10 +48,9 @@ import type {
4748
GraphQLNamedType,
4849
GraphQLFieldConfig,
4950
GraphQLFieldConfigMap,
51+
GraphQLInputValueConfig,
5052
GraphQLArgumentConfig,
51-
GraphQLFieldConfigArgumentMap,
5253
GraphQLEnumValueConfigMap,
53-
GraphQLInputFieldConfigMap,
5454
} from '../type/definition';
5555
import { assertSchema, GraphQLSchema } from '../type/schema';
5656
import { specifiedScalarTypes, isSpecifiedScalarType } from '../type/scalars';
@@ -444,7 +444,7 @@ export function extendSchemaImpl(
444444
// $FlowFixMe[incompatible-call]
445445
locations: node.locations.map(({ value }) => value),
446446
isRepeatable: node.repeatable,
447-
args: buildArgumentMap(node.arguments),
447+
args: buildInputValueMap(node.arguments),
448448
astNode: node,
449449
});
450450
}
@@ -469,7 +469,7 @@ export function extendSchemaImpl(
469469
// with validateSchema() will produce more actionable results.
470470
type: getWrappedType(field.type),
471471
description: field.description?.value,
472-
args: buildArgumentMap(field.arguments),
472+
args: buildInputValueMap(field.arguments),
473473
deprecationReason: getDeprecationReason(field),
474474
astNode: field,
475475
};
@@ -478,54 +478,38 @@ export function extendSchemaImpl(
478478
return fieldConfigMap;
479479
}
480480

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

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

494-
argConfigMap[arg.name.value] = {
494+
configMap[node.name.value] = {
495495
type,
496-
description: arg.description?.value,
497-
defaultValue: valueFromAST(arg.defaultValue, type),
498-
deprecationReason: getDeprecationReason(arg),
499-
astNode: arg,
496+
description: node.description?.value,
497+
defaultValue: valueFromAST(node.defaultValue, type),
498+
deprecationReason: getDeprecationReason(node),
499+
astNode: node,
500500
};
501501
}
502-
return argConfigMap;
502+
return configMap;
503503
}
504504

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

src/utilities/lexicographicSortSchema.js

Lines changed: 8 additions & 16 deletions
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';
@@ -79,29 +78,22 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
7978
return new GraphQLDirective({
8079
...config,
8180
locations: sortBy(config.locations, (x) => x),
82-
args: sortArgs(config.args),
81+
args: sortInputs(config.args),
8382
});
8483
}
8584

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

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

@@ -148,7 +140,7 @@ export function lexicographicSortSchema(schema: GraphQLSchema): GraphQLSchema {
148140
const config = type.toConfig();
149141
return new GraphQLInputObjectType({
150142
...config,
151-
fields: () => sortInputFields(config.fields),
143+
fields: () => sortInputs(config.fields),
152144
});
153145
}
154146

0 commit comments

Comments
 (0)