dotansimha/graphql-code-generator-community
Ver no GitHubTypeGraphQL Generator with Union type fails with error
Open
#121 aberto em 5 de abr. de 2021
help wanted
Métricas do repositório
- Stars
- (136 stars)
- Métricas de merge de PR
- (Métricas PR pendentes)
Description
Describe the bug
When generating TypeGraphQL, using a union type, the type passed to @TypeGraphQL.Field fails with the error: 'Step' only refers to a type, but is being used as a value here. (TS 2693)
To Reproduce Steps to reproduce the behavior:
Run the generation below.
- My GraphQL schema:
type PullStep @entity {
nextSteps: [Step!] @column
# ...other fields...
}
type PushStep @entity {
nextSteps: [Step!] @column
# ...other fields...
}
union Step = PullStep | PushStep
- My
codegen.ymlconfig file:
generates:
types.ts:
plugins:
- typescript-type-graphql
- The output:
import * as TypeGraphQL from 'type-graphql';
export { TypeGraphQL };
export type Maybe<T> = T | null;
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
export type FixDecorator<T> = T;
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
ID: string;
String: string;
Boolean: boolean;
Int: number;
Float: number;
};
@TypeGraphQL.ObjectType()
export class PullStep {
__typename?: 'PullStep';
@TypeGraphQL.Field(type => [Step], { nullable: true })
// ^^^^ !!! "'Step' only refers to a type, but is being used as a value here. (TS 2693)" !!!
// ^^^^
nextSteps!: Maybe<Array<Step>>;
};
@TypeGraphQL.ObjectType()
export class PushStep {
__typename?: 'PushStep';
@TypeGraphQL.Field(type => [Step], { nullable: true })
// ^^^^ !!! "'Step' only refers to a type, but is being used as a value here. (TS 2693)" !!!
// ^^^^
nextSteps!: Maybe<Array<Step>>;
};
export type Step = PullStep | PushStep;
Expected behavior
No error. To fix this, it probably needs a union type generated: https://typegraphql.com/docs/unions.html
Environment:
- OS: Linux
@graphql-codegen/...: 1.21.3- NodeJS: 14
Additional context