Plugin for GraphQL Code Generator that creates subtypes for each operation, similar to the output of Apollo codegen.
npm install @inversable/codegen-subtypests
query getContexts($userId: uuid!) {
auth_contexts {
id
name
AccountRoles(where: {account: {user_id: {_eq: $userId}}}) {
id
role
}
}
}
`
Default GraphQL Code Generator output (typescript-operations plugin)
`ts
export type get_contexts_query = {
auth_contexts: Array<{
__typename: 'auth_contexts',
id: any,
name: string | null,
AccountRoles: Array<{
__typename: 'auth_account_roles',
id: any, role: string
}>
}>
};
`
Additional types generated with Codegen Subtypes:
`ts
export type getContexts = get_contexts_query;
export type getContexts_auth_contexts = NonNullable<(NonNullable)[number]>;
export type getContexts_auth_contexts_AccountRoles = NonNullable<(NonNullable)[number]>['AccountRoles']>)[number]>;
`
How to enable
Add package:
`sh
npm install -D @inversable/codegen-subtypes
`
Add @inversable/codegen-subtypes as a plugin to your codegen.ts`.