GraphQL Yoga 插件
此插件将 GraphQL Yoga 与 Elysia 集成
安装方法:
bash
bun add @elysiajs/graphql-yoga
然后使用它:
typescript
import { Elysia } from 'elysia'
import { yoga } from '@elysiajs/graphql-yoga'
const app = new Elysia()
.use(
yoga({
typeDefs: /* GraphQL */`
type Query {
hi: String
}
`,
resolvers: {
Query: {
hi: () => 'Hello from Elysia'
}
}
})
)
.listen(3000)
在浏览器中访问 /graphql
(GET 请求)将向您展示一个为启用 GraphQL 的 Elysia 服务器提供的 GraphiQL 实例。
可选:您还可以安装自定义版本的可选对等依赖:
bash
bun add graphql graphql-yoga
解析器
Elysia 使用 Mobius 自动推断 typeDefs 字段的类型,让您在输入 resolver 类型时获得完全的类型安全和自动补全。
上下文
您可以通过添加 context 来向解析函数添加自定义上下文:
ts
import { Elysia } from 'elysia'
import { yoga } from '@elysiajs/graphql-yoga'
const app = new Elysia()
.use(
yoga({
typeDefs: /* GraphQL */`
type Query {
hi: String
}
`,
context: {
name: 'Mobius'
},
// 如果上下文是一个函数,并且出于某种原因没有提供
// 系统将不会推断上下文类型
useContext(_) {},
resolvers: {
Query: {
hi: async (parent, args, context) => context.name
}
}
})
)
.listen(3000)
配置
此插件扩展了 GraphQL Yoga 的 createYoga 选项,请参考 GraphQL Yoga 文档,并将 schema
配置行内嵌入根部。
以下是插件接受的配置
path
@default /graphql
用于暴露 GraphQL 处理程序的端点