dotansimha/graphql-code-generator-community
在 GitHub 查看[typescript-react-apollo] `dedupeOperationSuffix` doesn't work when operation name is all upper case
Open
#126 建立於 2021年5月5日
help wanted
倉庫指標
- Star
- (136 star)
- PR 合併指標
- (PR 指標待抓取)
描述
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(...).