LvG
理工作品开源项目开源项目

从零构建一个 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 },
});