Skip to content

Commit 3908186

Browse files
committed
Fix wrong generated type for derived loaders
1 parent 9d2bd7a commit 3908186

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

packages/cli/src/codegen/schema.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,10 @@ export default class SchemaCodeGenerator {
109109
.filter((def) => this._isEntityTypeDefinition(def))
110110
.flatMap((def: any) => def.fields)
111111
.filter((def: any) => this._isDerivedField(def))
112-
.map((def: any) => this._getTypeNameForField(def));
112+
.map((def: FieldDefinitionNode) => this._getTypeNameForField(def.type));
113113

114-
return [...new Set(fields)].map((typeName: any) => this._generateDerivedLoader(typeName));
114+
return [...new Set(fields)].map((typeName: any) => {
115+
return this._generateDerivedLoader(typeName)});
115116
}
116117

117118
_isEntityTypeDefinition(def: DefinitionNode): def is ObjectTypeDefinitionNode {
@@ -178,15 +179,19 @@ export default class SchemaCodeGenerator {
178179

179180
return klass;
180181
}
181-
_getTypeNameForField(gqlType: any): any {
182-
if (gqlType.kind === 'NonNullType') {
183-
return this._getTypeNameForField(gqlType.type)
184-
} else if (gqlType.kind === 'ListType') {
185-
return this._getTypeNameForField(gqlType.type)
186-
} else {
187-
return gqlType.name.value
188-
}
182+
183+
_getTypeNameForField(gqlType: TypeNode): string {
184+
185+
if (gqlType.kind === 'NonNullType') {
186+
return this._getTypeNameForField(gqlType.type);
187+
} if (gqlType.kind === 'ListType') {
188+
return this._getTypeNameForField(gqlType.type);
189+
} if (gqlType.kind === 'NamedType') {
190+
return (gqlType as NamedTypeNode).name.value;
189191
}
192+
193+
throw new Error(`Unknown type kind: ${gqlType}`);
194+
}
190195
_generateConstructor(_entityName: string, fields: readonly FieldDefinitionNode[] | undefined) {
191196
const idField = IdField.fromFields(fields);
192197
return tsCodegen.method(

0 commit comments

Comments
 (0)