English | 简体中文
GQLoom 是一个 代码优先(Code-First) 的 GraphQL Schema 纺织器,用于将 TypeScript/JavaScript 生态中的运行时类型编织成 GraphQL Schema。
Zod、Valibot、Yup 等运行时验证库已经在后端应用开发中得到广泛的使用;同时在使用 Prisma 、MikroORM、Drizzle 等 ORM 库时,我们也会预先定义包含运行时类型的数据库表结构或实体模型。 GQLoom 的职责就是将这些运行时类型编织为 GraphQL Schema。
当使用 GQLoom 开发后端应用时,你只需要使用你熟悉的 Schema 库编写类型,现代的 Schema 库将为你推导 TypeScript 类型,而 GQLoom 将为你编织 GraphQL 类型。
除此之外,GQLoom 的解析器工厂还可以为 Prisma
、MikroORM
、Drizzle
生成 CRUD 接口,并支持自定义输入和添加中间件。
import { resolver, query, weave } from "@gqloom/core"
import { ValibotWeaver } from "@gqloom/valibot"
import * as v from "valibot"
const helloResolver = resolver({
hello: query(v.string())
.input({ name: v.nullish(v.string(), "World") })
.resolve(({ name }) => `Hello, ${name}!`),
})
export const schema = weave(ValibotWeaver, helloResolver)
- 🧑💻 开发体验:更少的样板代码、语义化的 API 设计、广泛的生态集成使开发愉快;
- 🔒 类型安全:从 Schema 自动推导类型,在开发时享受智能提示,在编译时发现潜在问题;
- 🎯 接口工厂:寻常的 CRUD 接口太简单又太繁琐了,交给解析器工厂来快速创建;
- 🔋 整装待发:中间件、上下文、订阅、联邦图已经准备就绪;
- 🔮 抛却魔法:没有装饰器、没有元数据和反射、没有代码生成,只需要 JavaScript/TypeScript 就可以在任何地方运行;
- 🧩 丰富集成:使用你最熟悉的验证库和 ORM 来建构你的下一个 GraphQL 应用;
请参阅入门,了解如何使用GQLoom。
-
GQLoom Core: GraphQL 织布机核心功能;
-
GQLoom Drizzle: GQLoom 与 Drizzle 的集成,能够将用 Drizzle定义的数据库表格编织为 GraphQL Schema,支持使用解析器工厂从 Drizzle 快速创建 CRUD 接口;
-
GQLoom Federation: 提供 GQLoom 对 Apollo Federation 的支持;
-
GQLoom Mikro ORM: GQLoom 与 Mikro ORM 的集成,能够将 Mikro Entity 编织为 GraphQL Schema,支持使用解析器工厂从 Mikro ORM 快速创建 CRUD 接口;
-
GQLoom Prisma: GQLoom 与 Prisma 的集成,能够将 Prisma model 编织为 GraphQL Schema,支持使用解析器工厂从 Prisma 快速创建 CRUD 接口;
-
GQLoom Valibot: GQLoom 与 Valibot 的集成,能够将 Valibot Schema 编织为 GraphQL Schema;
-
GQLoom Yup: GQLoom 与 Yup 的集成,能够将 Yup Schema 编织为 GraphQL Schema;
-
GQLoom Zod: GQLoom 与 Zod 的集成,能够将 Zod Schema 编织为 GraphQL Schema;