@ atscript/ db (帮助)
一次定义模型 ——从单个获取 TypeScript 类型、运行时间验证和 DB 元数据 .as 型号.
Ascript 的通用数据库抽象层 。 提供统一的 CRUD, 关系, 视图, 聚合, 和计划同步 —— 均由 @db.* 注释 .as 模特们 可插件适配器连接任意数据库引擎(SQLite,PostgreSQL,MongoDB,MySQL).
安装
pnpm add @atscript/db
快速启动
@db.table "users"
interface User {
@meta.id
@db.default.increment
id: number
@db.index.unique "email_idx"
email: string
name: string
}
import { DbSpace } from "@atscript/db";
import { createAdapter } from "@atscript/db-sqlite";
const db = createAdapter("./myapp.db");
const users = db.getTable(User);
await users.insertOne({ name: "John", email: "[email protected]" });
const all = await users.findMany({ filter: { name: { $eq: "John" } } });
子公司
| 条目 | 目的 |
|---|---|
@atscript/db/plugin | dbPlugin() 登记所有 @db.* 说明 |
@atscript/db/rel | 关系加载和嵌入 |
@atscript/db/agg | 聚合查询验证 |
@atscript/db/sync | 与漂移探测和分布式锁定同步 |
@atscript/db/shared | 适配器插件的注释助手 |
特征
- 注释驱动方案:表格名称、索引、列映射、默认、主密钥
- 可插接适配器通过
BaseDbAdapter– 任何数据库的代码相同 - 自动写入管道:默认,验证,ID准备,列映射
- 嵌入式物体平整( Q)
__- 分开的列)和@db.json存储 - 关系:
@db.rel.to, (中文(简体) ),@db.rel.from, (中文(简体) ),@db.rel.via以嵌入式写作 - 视图 :
@db.view包含连接、过滤、已实现视图、汇总 - Schema同步: FNV-1a 散列漂移探测,分布式锁定,列/表重命名
- 串行补丁操作 :
$insert, (中文(简体) ),$upsert, (中文(简体) ),$update, (中文(简体) ),$remove, (中文(简体) ),$replace - 类型安全查询
FlatOf<T>用于自动完成过滤和预测
文档
许可证
麻省理工学院