Skip to content

Commit 9f8c284

Browse files
Change 'toConfig' to always return 'extensionASTNodes' as array (#2430)
1 parent 24d5690 commit 9f8c284

File tree

3 files changed

+21
-55
lines changed

3 files changed

+21
-55
lines changed

src/type/definition.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ export class GraphQLScalarType {
607607
parseValue: GraphQLScalarValueParser<mixed>,
608608
parseLiteral: GraphQLScalarLiteralParser<mixed>,
609609
extensions: ?ReadOnlyObjMap<mixed>,
610-
extensionASTNodes: ?$ReadOnlyArray<ScalarTypeExtensionNode>,
610+
extensionASTNodes: $ReadOnlyArray<ScalarTypeExtensionNode>,
611611
|} {
612612
return {
613613
name: this.name,
@@ -617,7 +617,7 @@ export class GraphQLScalarType {
617617
parseLiteral: this.parseLiteral,
618618
extensions: this.extensions,
619619
astNode: this.astNode,
620-
extensionASTNodes: this.extensionASTNodes,
620+
extensionASTNodes: this.extensionASTNodes ?? [],
621621
};
622622
}
623623
@@ -745,7 +745,7 @@ export class GraphQLObjectType {
745745
interfaces: Array<GraphQLInterfaceType>,
746746
fields: GraphQLFieldConfigMap<any, any>,
747747
extensions: ?ReadOnlyObjMap<mixed>,
748-
extensionASTNodes: ?$ReadOnlyArray<ObjectTypeExtensionNode>,
748+
extensionASTNodes: $ReadOnlyArray<ObjectTypeExtensionNode>,
749749
|} {
750750
return {
751751
name: this.name,
@@ -755,7 +755,7 @@ export class GraphQLObjectType {
755755
isTypeOf: this.isTypeOf,
756756
extensions: this.extensions,
757757
astNode: this.astNode,
758-
extensionASTNodes: this.extensionASTNodes,
758+
extensionASTNodes: this.extensionASTNodes || [],
759759
};
760760
}
761761

@@ -1055,7 +1055,7 @@ export class GraphQLInterfaceType {
10551055
interfaces: Array<GraphQLInterfaceType>,
10561056
fields: GraphQLFieldConfigMap<any, any>,
10571057
extensions: ?ReadOnlyObjMap<mixed>,
1058-
extensionASTNodes: ?$ReadOnlyArray<InterfaceTypeExtensionNode>,
1058+
extensionASTNodes: $ReadOnlyArray<InterfaceTypeExtensionNode>,
10591059
|} {
10601060
return {
10611061
name: this.name,
@@ -1065,7 +1065,7 @@ export class GraphQLInterfaceType {
10651065
resolveType: this.resolveType,
10661066
extensions: this.extensions,
10671067
astNode: this.astNode,
1068-
extensionASTNodes: this.extensionASTNodes,
1068+
extensionASTNodes: this.extensionASTNodes ?? [],
10691069
};
10701070
}
10711071

@@ -1158,7 +1158,7 @@ export class GraphQLUnionType {
11581158
...GraphQLUnionTypeConfig<any, any>,
11591159
types: Array<GraphQLObjectType>,
11601160
extensions: ?ReadOnlyObjMap<mixed>,
1161-
extensionASTNodes: ?$ReadOnlyArray<UnionTypeExtensionNode>,
1161+
extensionASTNodes: $ReadOnlyArray<UnionTypeExtensionNode>,
11621162
|} {
11631163
return {
11641164
name: this.name,
@@ -1167,7 +1167,7 @@ export class GraphQLUnionType {
11671167
resolveType: this.resolveType,
11681168
extensions: this.extensions,
11691169
astNode: this.astNode,
1170-
extensionASTNodes: this.extensionASTNodes,
1170+
extensionASTNodes: this.extensionASTNodes ?? [],
11711171
};
11721172
}
11731173

@@ -1320,7 +1320,7 @@ export class GraphQLEnumType /* <T> */ {
13201320
toConfig(): {|
13211321
...GraphQLEnumTypeConfig,
13221322
extensions: ?ReadOnlyObjMap<mixed>,
1323-
extensionASTNodes: ?$ReadOnlyArray<EnumTypeExtensionNode>,
1323+
extensionASTNodes: $ReadOnlyArray<EnumTypeExtensionNode>,
13241324
|} {
13251325
const values = keyValMap(
13261326
this.getValues(),
@@ -1340,7 +1340,7 @@ export class GraphQLEnumType /* <T> */ {
13401340
values,
13411341
extensions: this.extensions,
13421342
astNode: this.astNode,
1343-
extensionASTNodes: this.extensionASTNodes,
1343+
extensionASTNodes: this.extensionASTNodes ?? [],
13441344
};
13451345
}
13461346

@@ -1476,7 +1476,7 @@ export class GraphQLInputObjectType {
14761476
...GraphQLInputObjectTypeConfig,
14771477
fields: GraphQLInputFieldConfigMap,
14781478
extensions: ?ReadOnlyObjMap<mixed>,
1479-
extensionASTNodes: ?$ReadOnlyArray<InputObjectTypeExtensionNode>,
1479+
extensionASTNodes: $ReadOnlyArray<InputObjectTypeExtensionNode>,
14801480
|} {
14811481
const fields = mapValue(this.getFields(), field => ({
14821482
description: field.description,
@@ -1492,7 +1492,7 @@ export class GraphQLInputObjectType {
14921492
fields,
14931493
extensions: this.extensions,
14941494
astNode: this.astNode,
1495-
extensionASTNodes: this.extensionASTNodes,
1495+
extensionASTNodes: this.extensionASTNodes ?? [],
14961496
};
14971497
}
14981498

src/type/schema.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ export class GraphQLSchema {
345345
directives: this.getDirectives().slice(),
346346
extensions: this.extensions,
347347
astNode: this.astNode,
348-
extensionASTNodes: this.extensionASTNodes,
348+
extensionASTNodes: this.extensionASTNodes ?? [],
349349
assumeValid: this.__validationErrors !== undefined,
350350
};
351351
}
@@ -391,7 +391,7 @@ export type GraphQLSchemaNormalizedConfig = {|
391391
types: Array<GraphQLNamedType>,
392392
directives: Array<GraphQLDirective>,
393393
extensions: ?ReadOnlyObjMap<mixed>,
394-
extensionASTNodes: ?$ReadOnlyArray<SchemaExtensionNode>,
394+
extensionASTNodes: $ReadOnlyArray<SchemaExtensionNode>,
395395
assumeValid: boolean,
396396
|};
397397

src/utilities/extendSchema.js

Lines changed: 7 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,7 @@ export function extendSchemaImpl(
228228
],
229229
extensions: undefined,
230230
astNode: schemaDef ?? schemaConfig.astNode,
231-
extensionASTNodes: concatMaybeArrays(
232-
schemaConfig.extensionASTNodes,
233-
schemaExtensions,
234-
),
231+
extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions),
235232
assumeValid: options?.assumeValid ?? false,
236233
};
237234

@@ -305,10 +302,7 @@ export function extendSchemaImpl(
305302
})),
306303
...buildInputFieldMap(extensions),
307304
}),
308-
extensionASTNodes: concatMaybeArrays(
309-
config.extensionASTNodes,
310-
extensions,
311-
),
305+
extensionASTNodes: config.extensionASTNodes.concat(extensions),
312306
});
313307
}
314308

@@ -322,10 +316,7 @@ export function extendSchemaImpl(
322316
...config.values,
323317
...buildEnumValueMap(extensions),
324318
},
325-
extensionASTNodes: concatMaybeArrays(
326-
config.extensionASTNodes,
327-
extensions,
328-
),
319+
extensionASTNodes: config.extensionASTNodes.concat(extensions),
329320
});
330321
}
331322

@@ -335,10 +326,7 @@ export function extendSchemaImpl(
335326

336327
return new GraphQLScalarType({
337328
...config,
338-
extensionASTNodes: concatMaybeArrays(
339-
config.extensionASTNodes,
340-
extensions,
341-
),
329+
extensionASTNodes: config.extensionASTNodes.concat(extensions),
342330
});
343331
}
344332

@@ -356,10 +344,7 @@ export function extendSchemaImpl(
356344
...mapValue(config.fields, extendField),
357345
...buildFieldMap(extensions),
358346
}),
359-
extensionASTNodes: concatMaybeArrays(
360-
config.extensionASTNodes,
361-
extensions,
362-
),
347+
extensionASTNodes: config.extensionASTNodes.concat(extensions),
363348
});
364349
}
365350

@@ -379,10 +364,7 @@ export function extendSchemaImpl(
379364
...mapValue(config.fields, extendField),
380365
...buildFieldMap(extensions),
381366
}),
382-
extensionASTNodes: concatMaybeArrays(
383-
config.extensionASTNodes,
384-
extensions,
385-
),
367+
extensionASTNodes: config.extensionASTNodes.concat(extensions),
386368
});
387369
}
388370

@@ -396,10 +378,7 @@ export function extendSchemaImpl(
396378
...type.getTypes().map(replaceNamedType),
397379
...buildUnionTypes(extensions),
398380
],
399-
extensionASTNodes: concatMaybeArrays(
400-
config.extensionASTNodes,
401-
extensions,
402-
),
381+
extensionASTNodes: config.extensionASTNodes.concat(extensions),
403382
});
404383
}
405384

@@ -704,19 +683,6 @@ export function extendSchemaImpl(
704683
}
705684
}
706685

707-
function concatMaybeArrays<X>(
708-
maybeArrayA: ?$ReadOnlyArray<X>,
709-
maybeArrayB: ?$ReadOnlyArray<X>,
710-
): ?$ReadOnlyArray<X> {
711-
if (maybeArrayA == null) {
712-
return maybeArrayB;
713-
}
714-
if (maybeArrayB == null) {
715-
return maybeArrayA;
716-
}
717-
return maybeArrayA.concat(maybeArrayB);
718-
}
719-
720686
const stdTypeMap = keyMap(
721687
specifiedScalarTypes.concat(introspectionTypes),
722688
type => type.name,

0 commit comments

Comments
 (0)