Skip to content

Commit 57fddc0

Browse files
committed
Use empty arrays instead of undefined properties
1 parent 499a759 commit 57fddc0

File tree

5 files changed

+17
-29
lines changed

5 files changed

+17
-29
lines changed

src/type/definition.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ export class GraphQLObjectType {
563563
name: string;
564564
description: ?string;
565565
astNode: ?ObjectTypeDefinitionNode;
566-
extensionASTNodes: ?$ReadOnlyArray<ObjectTypeExtensionNode>;
566+
extensionASTNodes: $ReadOnlyArray<ObjectTypeExtensionNode>;
567567
isTypeOf: ?GraphQLIsTypeOfFn<*, *>;
568568

569569
_typeConfig: GraphQLObjectTypeConfig<*, *>;
@@ -574,7 +574,7 @@ export class GraphQLObjectType {
574574
this.name = config.name;
575575
this.description = config.description;
576576
this.astNode = config.astNode;
577-
this.extensionASTNodes = config.extensionASTNodes;
577+
this.extensionASTNodes = config.extensionASTNodes || [];
578578
this.isTypeOf = config.isTypeOf;
579579
this._typeConfig = config;
580580
invariant(typeof config.name === 'string', 'Must provide name.');
@@ -820,7 +820,7 @@ export class GraphQLInterfaceType {
820820
name: string;
821821
description: ?string;
822822
astNode: ?InterfaceTypeDefinitionNode;
823-
extensionASTNodes: ?$ReadOnlyArray<InterfaceTypeExtensionNode>;
823+
extensionASTNodes: $ReadOnlyArray<InterfaceTypeExtensionNode>;
824824
resolveType: ?GraphQLTypeResolver<*, *>;
825825

826826
_typeConfig: GraphQLInterfaceTypeConfig<*, *>;
@@ -830,7 +830,7 @@ export class GraphQLInterfaceType {
830830
this.name = config.name;
831831
this.description = config.description;
832832
this.astNode = config.astNode;
833-
this.extensionASTNodes = config.extensionASTNodes;
833+
this.extensionASTNodes = config.extensionASTNodes || [];
834834
this.resolveType = config.resolveType;
835835
this._typeConfig = config;
836836
invariant(typeof config.name === 'string', 'Must provide name.');

src/type/schema.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export class GraphQLSchema {
8383
// Used as a cache for validateSchema().
8484
__validationErrors: ?$ReadOnlyArray<GraphQLError>;
8585
// Referenced by validateSchema().
86-
__allowedLegacyNames: ?$ReadOnlyArray<string>;
86+
__allowedLegacyNames: $ReadOnlyArray<string>;
8787

8888
constructor(config: GraphQLSchemaConfig): void {
8989
// If this schema was built from a source known to be valid, then it may be
@@ -113,7 +113,7 @@ export class GraphQLSchema {
113113
);
114114
}
115115

116-
this.__allowedLegacyNames = config.allowedLegacyNames;
116+
this.__allowedLegacyNames = config.allowedLegacyNames || [];
117117
this._queryType = config.query;
118118
this._mutationType = config.mutation;
119119
this._subscriptionType = config.subscription;

src/type/validate.js

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -218,10 +218,7 @@ function validateName(
218218
): void {
219219
// If a schema explicitly allows some legacy name which is no longer valid,
220220
// allow it to be assumed valid.
221-
if (
222-
context.schema.__allowedLegacyNames &&
223-
context.schema.__allowedLegacyNames.indexOf(node.name) !== -1
224-
) {
221+
if (context.schema.__allowedLegacyNames.indexOf(node.name) !== -1) {
225222
return;
226223
}
227224
// Ensure names are valid, however introspection types opt out.
@@ -564,10 +561,8 @@ function getAllObjectNodes(
564561
type: GraphQLObjectType,
565562
): $ReadOnlyArray<ObjectTypeDefinitionNode | ObjectTypeExtensionNode> {
566563
return type.astNode
567-
? type.extensionASTNodes
568-
? [type.astNode].concat(type.extensionASTNodes)
569-
: [type.astNode]
570-
: type.extensionASTNodes || [];
564+
? [type.astNode].concat(type.extensionASTNodes)
565+
: type.extensionASTNodes;
571566
}
572567

573568
function getAllObjectOrInterfaceNodes(
@@ -579,10 +574,8 @@ function getAllObjectOrInterfaceNodes(
579574
| InterfaceTypeExtensionNode,
580575
> {
581576
return type.astNode
582-
? type.extensionASTNodes
583-
? [type.astNode].concat(type.extensionASTNodes)
584-
: [type.astNode]
585-
: type.extensionASTNodes || [];
577+
? [type.astNode].concat(type.extensionASTNodes)
578+
: type.extensionASTNodes;
586579
}
587580

588581
function getImplementsInterfaceNode(

src/utilities/__tests__/extendSchema-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ describe('extendSchema', () => {
245245
const testDirective = extendedTwiceSchema.getDirective('test');
246246

247247
expect(query.extensionASTNodes).to.have.lengthOf(2);
248-
expect(testType.extensionASTNodes).to.equal(undefined);
248+
expect(testType.extensionASTNodes).to.have.lengthOf(0);
249249

250250
const restoredExtensionAST = {
251251
kind: Kind.DOCUMENT,

src/utilities/extendSchema.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -241,10 +241,9 @@ export function extendSchema(
241241
// Support both original legacy names and extended legacy names.
242242
const schemaAllowedLegacyNames = schema.__allowedLegacyNames;
243243
const extendAllowedLegacyNames = options && options.allowedLegacyNames;
244-
const allowedLegacyNames =
245-
schemaAllowedLegacyNames && extendAllowedLegacyNames
246-
? schemaAllowedLegacyNames.concat(extendAllowedLegacyNames)
247-
: schemaAllowedLegacyNames || extendAllowedLegacyNames;
244+
const allowedLegacyNames = extendAllowedLegacyNames
245+
? schemaAllowedLegacyNames.concat(extendAllowedLegacyNames)
246+
: schemaAllowedLegacyNames;
248247

249248
// Then produce and return a Schema with these types.
250249
return new GraphQLSchema({
@@ -309,9 +308,7 @@ export function extendSchema(
309308
function extendObjectType(type: GraphQLObjectType): GraphQLObjectType {
310309
const name = type.name;
311310
const extensionASTNodes = typeExtensionsMap[name]
312-
? type.extensionASTNodes
313-
? type.extensionASTNodes.concat(typeExtensionsMap[name])
314-
: typeExtensionsMap[name]
311+
? type.extensionASTNodes.concat(typeExtensionsMap[name])
315312
: type.extensionASTNodes;
316313
return new GraphQLObjectType({
317314
name,
@@ -329,9 +326,7 @@ export function extendSchema(
329326
): GraphQLInterfaceType {
330327
const name = type.name;
331328
const extensionASTNodes = typeExtensionsMap[name]
332-
? type.extensionASTNodes
333-
? type.extensionASTNodes.concat(typeExtensionsMap[name])
334-
: typeExtensionsMap[name]
329+
? type.extensionASTNodes.concat(typeExtensionsMap[name])
335330
: type.extensionASTNodes;
336331
return new GraphQLInterfaceType({
337332
name: type.name,

0 commit comments

Comments
 (0)