Skip to content

Commit af53be0

Browse files
feat: update import paths for GraphQL types and enhance resolver context handling
1 parent 5a5bfd8 commit af53be0

File tree

11 files changed

+17
-13
lines changed

11 files changed

+17
-13
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ The module automatically generates TypeScript types from your GraphQL schema:
173173
These types are automatically available in your resolvers:
174174

175175
```ts
176-
import type { QueryResolvers } from '#build/graphql-types.generated'
176+
import type { QueryResolvers } from '#graphql/server'
177177
// server/graphql/users/user-queries.ts
178178
import { defineResolver } from 'nitro-graphql'
179179

playground-nuxt/server/graphql/todos/todo-mutations.resolver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Todo } from '#build/graphql-types.generated'
1+
import type { Todo } from '#graphql/server'
22

33
export default defineResolver({
44
Mutation: {

playground-nuxt/server/graphql/users/user-queries.resolver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { User } from '#build/graphql-types.generated'
1+
import type { User } from '#graphql/server'
22

33
// Mock database
44
const users: User[] = [

playground/server/graphql/todos/todo-mutations.resolver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { Todo } from '#build/graphql-types.generated'
1+
import type { Todo } from '#graphql/server'
22

33
export default defineResolver({
44
Mutation: {

playground/server/graphql/todos/todo-queries.resolver.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export default defineResolver({
22
Query: {
3-
todos: async (_parent, _args, { storage }) => {
3+
todos: async (_parent, _args, context) => {
44
// const todos = await storage.getItem('todos') || []
55
return [{
66
id: '1',
@@ -10,8 +10,8 @@ export default defineResolver({
1010
}]
1111
},
1212

13-
todo: async (_parent, { id }, { storage }) => {
14-
const todos = await storage.getItem('todos') || []
13+
todo: async (_parent, { id }, context) => {
14+
const todos = []
1515
return todos.find((todo: any) => todo.id === id) || null
1616
},
1717
},

playground/server/graphql/users/user-queries.resolver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { User } from '#build/graphql-types.generated'
1+
import type { User } from '#graphql/server'
22

33
// Mock database
44
const users: User[] = [

playground/server/routes/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export default defineEventHandler(() => {
1+
export default defineEventHandler((event) => {
22
return `
33
<!DOCTYPE html>
44
<html>

src/codegen.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ export async function generateTypes(
5757
},
5858
defaultScalarType: 'unknown',
5959
defaultMapper: `ResolverReturnType<{T}>`,
60-
contextType: './context#GraphQLContext',
60+
contextType: 'h3#H3Event',
6161
maybeValue: 'T | null | undefined',
6262
inputMaybeValue: 'T | undefined',
6363
enumsAsTypes: true,

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default defineNitroModule({
1818
buildDir: '',
1919
watchDirs: [],
2020
clientDir: '',
21+
serverDir: resolve(nitro.options.srcDir, 'graphql'),
2122
}
2223

2324
nitro.options.runtimeConfig.graphql = defu(nitro.options.runtimeConfig.graphql || {}, {

src/routes/graphql.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import type { YogaServerInstance } from 'graphql-yoga'
22
import { defs } from '#nitro-internal-virtual/server-defs'
3-
import { resolvers } from '#nitro-internal-virtual/server-resolvers'
43

4+
import { resolvers } from '#nitro-internal-virtual/server-resolvers'
55
import { mergeResolvers, mergeTypeDefs } from '@graphql-tools/merge'
66
import { createSchema, createYoga } from 'graphql-yoga'
7-
import { defineEventHandler } from 'h3'
7+
import { defineEventHandler, toWebRequest } from 'h3'
88
// TODO: https://github.com/nitrojs/nitro/issues/3403 if used import this error.
99
// import { createMergedSchema } from 'nitro-graphql/internal'
1010

@@ -64,6 +64,8 @@ export default defineEventHandler(async (event) => {
6464
renderGraphiQL: () => apolloSandboxHtml,
6565
})
6666
}
67+
const request = toWebRequest(event)
68+
const response = await yoga.handleRequest(request, event as any)
6769

68-
return yoga.handle(event.node.req, event.node.res)
70+
return new Response(response.body, response)
6971
})

0 commit comments

Comments
 (0)