@antelopejs/interface-database-decorators

中文文档
0.2.0发布于 2026/11/05Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 1.3万

AntelopeJS decorators for database tables and typed data models, with encrypted, hashed and localized fields

原始使用文档
文档目录8 节
  1. What it offers
  2. Implementations
  3. Install
  4. Quick start
  5. Documentation
  6. Compatibility
  7. Contributing
  8. License

@antelopejs/interface-database-decorators

npm License Discord Docs

Database tables and data models as TypeScript classes, on top of @antelopejs/interface-database. Declare fields and indexes with decorators, then read and write rows through a typed model.

Part of AntelopeJS. Used by AntelopeJS DMS, the open-source back office for your PostgreSQL, MongoDB or RethinkDB database.

What it offers

  • Table, @RegisterTable, @Field, @Index and @Fixture declare tables, indexes and seed rows; RegisterSchema provisions them.
  • BasicDataModel and GetModel give each table typed CRUD methods with optional validation.
  • @Encrypted, @Hashed, @Localized, @CreationTime and @UpdateTime transform field values on write and read.
  • @Model injects a model into an @antelopejs/interface-api controller.

Implementations

The package runs in your module and has no implementing module of its own. The project needs a module that implements @antelopejs/interface-database:

ModuleNotes
@antelopejs/mongodbMongoDB
@antelopejs/rethinkdbRethinkDB

Install

Add the package to the module that declares tables:

pnpm add @antelopejs/interface-database-decorators

Then add a database module to the project:

ajs project modules add @antelopejs/mongodb

Quick start

import {
  BasicDataModel,
  Field,
  GetModel,
  Index,
  RegisterSchema,
  RegisterTable,
  Table,
} from "@antelopejs/interface-database-decorators";

@RegisterTable("recipes", "cookbook")
class Recipe extends Table {
  @Index()
  @Field("string")
  declare slug: string;

  @Field("string")
  declare tagline: string;
}

class RecipeModel extends BasicDataModel(Recipe) {}

export async function construct() {
  await RegisterSchema("cookbook");
}

export async function start() {
  const recipes = GetModel(RecipeModel);
  await recipes.insert({ slug: "grilled-halloumi", tagline: "Smoky skewers" });
  const [recipe] = await recipes.getBy("slug", "grilled-halloumi");
  await recipes.update(recipe._id, { tagline: "Smoky halloumi skewers" });
}

RegisterSchema creates every table registered for the schema and inserts their fixtures. Call it once, in the module that declares the tables.

Documentation

Compatibility

The package declares these @antelopejs/* peer dependencies:

PackageSupportedTested with
@antelopejs/interface-api>=0.0.15 <1.0.00.0.15
@antelopejs/interface-core>=0.2.4 <1.0.00.4.0
@antelopejs/interface-database>=0.1.11 <1.0.00.3.0

Contributing

Read CONTRIBUTING.md before you open a pull request. The local checks are:

pnpm install
pnpm lint
pnpm test

License

Apache-2.0

版本与发布记录

@antelopejs/interface-database-decorators 共发布 17 个版本,首次发布于 2026/03/23;过去 12 个月发布了 17 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.0latest2026/11/051 天前
0.1.122026/11/033 天前
0.1.112026/10/298 天前
0.1.102026/10/2413 天前
0.1.92026/10/1720 天前
0.1.82026/10/1324 天前

关于 @antelopejs/interface-database-decorators 的常见问题

@antelopejs/interface-database-decorators 是什么?

AntelopeJS decorators for database tables and typed data models, with encrypted, hashed and localized fields

如何安装 @antelopejs/interface-database-decorators?

在项目目录运行 npm install @antelopejs/interface-database-decorators,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@antelopejs/interface-api(>=0.0.15 <1.0.0)、@antelopejs/interface-core(>=0.2.4 <1.0.0)、@antelopejs/interface-database(>=0.1.11 <1.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@antelopejs/interface-database-decorators 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@antelopejs/interface-database-decorators 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@antelopejs/interface-database-decorators 可以商用吗?

@antelopejs/interface-database-decorators 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@antelopejs/interface-database-decorators 的下载量有多少?

根据 npm 官方下载统计,@antelopejs/interface-database-decorators 在 2026/10/06 – 2026/11/04 这 30 天内被下载 13,256 次,日均约 442 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@antelopejs/interface-database-decorators 还在维护吗?

最新版本 0.2.0 发布于 2026/11/05(1 天前);至今共发布 17 个版本,其中过去 12 个月发布了 17 个;首次发布于 2026/03/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。