Skip to content

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 请求)将显示一个 GraphiQL 实例,用于支持 GraphQL 的 Elysia 服务器。

可选:您还可以安装自定义版本的可选对等依赖项:

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 处理程序的端点

贡献者

The avatar of contributor named as 一纸忘忧 一纸忘忧

页面历史