Pothos 是一个基于插件的 TypeScript GraphQL 架构构建器。
它使得在 TypeScript 中构建 GraphQL 架构变得简单、快速且愉快。Pothos 的核心在运行时不会增加任何开销,并且只依赖 graphql
库。
Pothos 是在 TypeScript 中构建 GraphQL 架构最具类型安全的方式。通过利用类型推断和 TypeScript 强大的类型系统,Pothos 只需要很少的手动类型定义,也不需要代码生成。
Pothos 拥有独特而强大的插件系统,使每个插件的功能都像是内置在核心库中一样。插件可以通过添加新的选项或方法来扩展 API 的几乎任何部分,这些选项或方法可以充分利用 Pothos 类型系统。
import { createYoga } from 'graphql-yoga'; import { createServer } from 'node:http'; import SchemaBuilder from '@pothos/core'; const builder = new SchemaBuilder({}); builder.queryType({ fields: (t) => ({ hello: t.string({ args: { name: t.arg.string(), }, resolve: (parent, { name }) => `hello, ${name || 'World'}`, }), }), }); const yoga = createYoga({ schema: builder.toSchema(), }); const server = createServer(yoga); server.listen(3000);
将现有的 GraphQL 类型添加到你的架构中
为你的架构添加全局、类型级或字段级的授权检查
用于定义和限制查询复杂度的插件
以类型安全的方式集成现有的架构 GraphQL 指令
一个用于轻松在 GraphQL 架构中包含错误类型并将错误类型连接到解析器的插件
快速为你的类型和字段定义数据加载器,以避免 n+1 查询问题
添加模拟解析器,便于测试
一个用于更高效集成 Prisma 的插件,可以帮助解决 n+1 问 题并更高效地解析查询
易于使用的构建方法,用于定义 Relay 风格的节点和连接,以及用于基于游标的分页的实用工具
定义无需解析器或手动类型定义的简单对象类型
使你的图中的任何部分都可订阅,以获取数据变化的实时更新
构建你的图的多个子集,轻松在内部和外部 API 之间共享代码
为解析器执行添加追踪功能,支持 opentelemetry、newrelic、century、日志记录和自定义追踪器
使用内联输入对象定义字段
验证你的输入和参数
Pothos 的开发得到了以下慷慨人士和组织的赞助支持: