理工作品开源项目开源项目
从零构建一个 ORM
用 TypeScript 实现一个类型安全的迷你 ORM,理解 Prisma 的设计理念。
TypeScriptPostgreSQLNode.js
2026/4/84 次浏览
项目目标
理解 ORM 的核心原理,用不到 500 行 TypeScript 实现一个支持以下功能的迷你 ORM:
- Schema 定义(类型推导)
- 查询构建器(链式调用)
- 关系处理(一对多、多对多)
- 迁移管理
核心思路
const db = createClient({
models: {
user: {
id: field.id(),
name: field.string(),
posts: relation.hasMany('post'),
},
},
});
const users = await db.user.findMany({
where: { name: { contains: 'John' } },
include: { posts: true },
});