You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using the enumsAsConst plugin configuration option in graphql-codegen/typescript to generate TypeScript enums for GraphQL enums, the @Deprecated directive is not being added to the generated resolver-types.ts file. This means that any deprecated values in the GraphQL schema are not marked as deprecated in the generated TypeScript types, which could lead to confusion for developers using the generated types.
Create a GraphQL schema that includes a deprecated enum value with the @deprecated directive:
enum Color {
RED
GREEN @deprecated(reason: “Use BLUE instead”)
BLUE
}
Configure graphql-codegen with the typescript plugin and the enumsAsConst plugin configuration option:
plugins:
- typescript
config:
enumsAsConst: true
Run graphql-codegen to generate TypeScript types for the schema.
Inspect the generated resolver-types.ts file and verify that the deprecated enum value does not have the @deprecated JSDoc annotation.
The @deprecated JSDoc annotation is not included in the generated resolver-types.ts file for deprecated enum values when using the enumsAsConst plugin configuration option.
export const Color = {
RED: 'RED',
GREEN: 'GREEN',
BLUE: 'BLUE'
} as const;
Expected behavior
The generated resolver-types.ts file should include the @deprecated JSDoc annotation for any deprecated enum values in the GraphQL schema, even when using the enumsAsConst plugin configuration option.
enum Color {
RED
GREEN @deprecated(reason: "Use BLUE instead")
BLUE
}
export const Color = {
RED: 'RED',
/** @deprecated Use BLUE instead */
GREEN: 'GREEN',
BLUE: 'BLUE'
} as const;
Ran into this issue yesterday too. It prevents us from using this config option because we rely on the deprecated directive in the jsdoc to ensure we are removing usage of deprecated values from our frontend codebases.
Which packages are impacted by your issue?
@graphql-codegen/typescript
Describe the bug
When using the
enumsAsConst
plugin configuration option ingraphql-codegen/typescript
to generate TypeScript enums for GraphQL enums, the@Deprecated
directive is not being added to the generatedresolver-types.ts
file. This means that any deprecated values in the GraphQL schema are not marked as deprecated in the generated TypeScript types, which could lead to confusion for developers using the generated types.Your Example Website or App
https://stackblitz.com/edit/github-jbn6g8?file=codegen.ts
Steps to Reproduce the Bug or Issue
@deprecated
directive:graphql-codegen
with thetypescript
plugin and theenumsAsConst
plugin configuration option:Run
graphql-codegen
to generate TypeScript types for the schema.Inspect the generated
resolver-types.ts
file and verify that the deprecated enum value does not have the@deprecated
JSDoc annotation.The
@deprecated
JSDoc annotation is not included in the generatedresolver-types.ts
file for deprecated enum values when using theenumsAsConst
plugin configuration option.Expected behavior
The generated
resolver-types.ts
file should include the@deprecated
JSDoc annotation for any deprecated enum values in the GraphQL schema, even when using theenumsAsConst
plugin configuration option.Screenshots or Videos
No response
Platform
graphql
version: [e.g. 16.3.0]@graphql-codegen/*
version(s): [e.g. 2.6.2]Codegen Config File
Additional context
No response
The text was updated successfully, but these errors were encountered: