用途:在健身追踪应用中落地仓储模式,对 Dexie(IndexedDB)做抽象,提供类型安全接口、统一错误处理与标准 CRUD 操作。
主要能力:标准化 getAll/getById/create/update/delete;自动注入 createdAt、updatedAt 时间戳;generateId() 生成 ID;软删除;多对多与事务、批量操作等进阶模式;converters 在领域类型与数据库类型之间转换;buildPartialUpdate 支持部分更新。
使用方式:六步创建仓储——在 src/db/interfaces.ts 定义接口并加入 RepositoryProvider;在 src/db/schema.ts 定义 Db 前缀类型(用 null 而非 undefined);在 database.ts 加表与索引并升级版本;在 dexie/[entity].ts 用 tryCatch 实现;在 dexie/index.ts 注册工厂;在 db/index.ts 导出公共 getter,业务侧用 getEntityRepository() 调用。错误码为 SAVE_FAILED、LOAD_FAILED、NOT_FOUND。
适用场景:新增实体存储、多对多关系、扩展设置、类型转换、批量导入导出。
限制:基于特定项目结构与 Dexie/IndexedDB,未提供独立安装命令或跨框架通用说明;索引与版本迁移需手动维护。