dotansimha/graphql-code-generator
Replace `Promise` with `PromiseLike` in resolver types
开放
#6,378 创建于 2021年7月29日
corehelp wantedkind/enhancement
仓库指标
- 星标
- (10,341 个星标)
- PR 合并指标
- (PR 指标待抓取)
描述
Is your feature request related to a problem? Please describe.
When using non-native Promise library like Bluebird, the return type of resolvers will often be PromiseLike, but it doesn't adapt with generated resolver-types because the generated code is using native Promise type.
sample code:
const resolvers: Resolvers = {
Query: {
name: () => { // string field
return Promise.resolve('1') as PromiseLike<string>
}
}
}
error message:
(...omitted)
Type 'PromiseLike<string>' is not assignable to type 'ResolverTypeWrapper<string> | Promise<ResolverTypeWrapper<string>>'.
Type 'PromiseLike<string>' is missing the following properties from type 'Promise<ResolverTypeWrapper<string>>': catch, finally, [Symbol.toStringTag]
Describe the solution you'd like
Can Promise be just replaced with PromiseLike?
Describe alternatives you've considered
We can customize it by using customResolverFn.
So this feature request is not mandatory, but I feel it's better if I don't have to customize and manage it in our code.
Additional context