[typescript-react-apollo] `dedupeOperationSuffix` doesn't work when operation name is all upper case
#126 aberto em 5 de mai. de 2021
Métricas do repositório
- Stars
- (136 stars)
- Métricas de merge de PR
- (Métricas PR pendentes)
Description
Describe the bug
The typescript-react-apollo plugin doesn't properly handle deduping operation suffix when the suffix is all upper case.
To Reproduce
Generate apollo typescript hooks with an operation name that is all caps and post-fixed with QUERY, MUTATION, or FRAGMENT.
- My GraphQL schema:
type Query {
user(id: ID!): User!
}
type User {
id: ID!
username: String!
email: String!
}
- My GraphQL operations:
query GET_USER_QUERY {
user(id: 1) {
id
username
email
}
}
- My
codegen.ymlconfig file:
config:
apolloClientVersion: 3
dedupeOperationSuffix: true
namingConvention:
transformUnderscore: true
documents:
- './src/**/*.graphql'
generates:
src/graphql/types-and-hooks.ts:
schema: schema.graphql
plugins:
- 'typescript'
- 'typescript-operations'
- 'typescript-react-apollo'
Expected behavior
A hook should be generated with pascal case without duplicate operation name suffix
export function useGetUserQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<GetUserQuery, GetUserQueryVariables>) {
const options = {...defaultOptions, ...baseOptions}
return ApolloReactHooks.useQuery<GetUserQuery, GetUserQueryVariables>(GetUserQueryDocument, options);
}
Environment:
- OS: MacOS 11.3
- "@graphql-codegen/cli": "^1.21.3",
- "@graphql-codegen/typescript": "^1.21.1",
- "@graphql-codegen/typescript-operations": "^1.17.15",
- "@graphql-codegen/typescript-react-apollo": "^2.2.4",
- NodeJS: 12
Additional context
From looking at the codebase, I believe that the operation name being tested here should either be a regex match or convert it to test the operation name via pascalCase(name).includes(...).