dotansimha / dotansimha/graphql-code-generator

Resolver cannot return null on nullable query...

Open
#9,670 5 comments 0 reactions 0 assignees View on GitHub
stage/0-issue-prerequisites
Dominant language
TypeScript
Stars
11.3k
Forks
1.4k
Avg merge
1d 1h
Merged PRs (30d)
23

Description

### Which packages are impacted by your issue?

@graphql-codegen/cli, @graphql-codegen/core

### Describe the bug

```graphql
type Query {
# health check
time: Int!
allUsers: [User!]!
currentUser: User
interpreter(id: ID!): Interpreter
}
```

```typescript

src/api/graphql/resolvers/interpreter.ts:44:9 - error TS2322: Type '(_: {}, params: RequireFields, ctx: GraphQLContext) => Promise<{ userId: string; createdAt: Date; } | null>' is not assignable to type 'Resolver>, {}, GraphQLContext, RequireFields> | undefined'.
Type '(_: {}, params: RequireFields, ctx: GraphQLContext) => Promise<{ userId: string; createdAt: Date; } | null>' is not assignable to type 'ResolverFn>, {}, GraphQLContext, RequireFields>'.
Type 'Promise<{ userId: string; createdAt: Date; } | null>' is not assignable to type 'Maybe> | Promise>>'.
Type 'Promise<{ userId: string; createdAt: Date; } | null>' is not assignable to type 'Promise'.
Type '{ userId: string; createdAt: Date; } | null' is not assignable to type 'Interpreter'.
Type 'null' is not assignable to type 'Interpreter'.

44 async interpreter(_, params, ctx) {
~~~~~~~~~~~
```

```typescript
export const interpreterQueryResolvers: gql.QueryResolvers = {
async interpreter(_, params, ctx) {
const interpreter = await findInterpreterById(ctx, parseInt(params.id, 10));
if (!interpreter) return null;
return {
userId: `${interpreter.userId}`,
createdAt: interpreter.createdAt,
};
},
};

```

### Your Example Website or App

N/A

### Steps to Reproduce the Bug or Issue

Use my schema , and try to use the generated resolver types.

### Expected behavior

Should allow resolver to return a null value.
Screenshot 2023-09-13 at 2 59 18 AM

### Screenshots or Videos

_No response_

### Platform

- OS: macOS
- NodeJS: v20.5.0
- `graphql` version: 16.8.0
- `@graphql-codegen/*` version(s): 5.0.0

### Codegen Config File

```yaml
overwrite: true
schema: "./graphql/schema.graphql"
# documents: "./src/api/graphql/schema.graphql"
documents: null
emitLegacyCommonJSImports: false
generates:
# ./src/api/graphql/generated/client/:
# preset: "client-preset"
./src/api/graphql/generated/graphql.ts:
plugins:
- "typescript"
- "typescript-resolvers"
config:
enumsAsConst: true
```

### Additional context

_No response_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.