dotansimha / dotansimha/graphql-code-generator-community
[typescript-react-apollo] `dedupeOperationSuffix` doesn't work when operation name is all upper case
- Dominant language
- TypeScript
- Stars
- 137
- Forks
- 195
- Avg merge
- 6h 20m
- Merged PRs (30d)
- 16
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`.
1. My GraphQL schema:
```graphql
type Query {
user(id: ID!): User!
}
type User {
id: ID!
username: String!
email: String!
}
```
2. My GraphQL operations:
```graphql
query GET_USER_QUERY {
user(id: 1) {
id
username
email
}
}
```
3. My `codegen.yml` config file:
```yml
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
```ts
export function useGetUserQuery(baseOptions?: ApolloReactHooks.QueryHookOptions) {
const options = {...defaultOptions, ...baseOptions}
return ApolloReactHooks.useQuery(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](https://github.com/dotansimha/graphql-code-generator/blob/master/packages/plugins/typescript/react-apollo/src/visitor.ts#L384) should either be a regex match or convert it to test the operation name via `pascalCase(name).includes(...)`.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.