@aws/dynamodb-data-mapper-annotations

中文文档
0.7.3发布于 2018/08/16Apache-2.0TypeScriptCommonJS近 30 天下载 7.7万

说明提供了 TypeScript 域对象和 @aws/dynamodb- data-mapper 库之间的简单整合

中文使用文档
文档目录11 节
  1. 开始
  2. 支持的说明
  3. attribute
  4. autoGeneratedHashKey
  5. hashKey
  6. rangeKey
  7. table
  8. versionAttribute
  9. 洞穴
  10. 依赖实验类型脚本特性
  11. 缺乏通用材料的类别信息

亚马逊 DynamoDB 数据Mapper 说明

Apache 2 License

此库提供说明, 以方便域类的整合 与 DataMapper 定义 @aws/dynamodb-data-mapper. 这些说明 以单独的国家预防机制一揽子计划提供,因为它们依赖两个试验项目: typeScript(装饰和元数据装饰)的特性,并取决于 reflect-metadata 软件包.

开始

要使用注释, 您首先需要启用两个类型脚本编译器 设置 : experimentalDecorators 财务报告和审定财务报表 emitDecoratorMetadata前者 允许在您的工程中使用注释,而后一键会发出类型 关于已申报财产类别的信息.

下一个,开始添加 table 代表域模型的说明 您的 DynamoDB 表格中的记录和声明的属性说明 映射到这些记录属性的属性:

import {
    attribute,
    autoGeneratedHashKey,
    rangeKey,
    table,
    versionAttribute,
} from '@aws/dynamodb-data-mapper-annotations';
import uuidV4 = require('uuid/v4');

@table('my_table')
class MyDomainClass {
    @autoGeneratedHashKey()
    id: string;

    @rangeKey({defaultProvider: () => new Date()})
    createdAt: Date;

    @versionAttribute()
    version: number;

    @attribute()
    toggle?: boolean;

    @attribute({memberType: 'String'})
    tags?: Set<string>;
    
    // This property will not be saved to DynamoDB.
    notPersistedToDynamoDb: string;
}

使用这些注释将在 DynamoDbSchema 财务报告和审定财务报表 DynamoDbTable 类别原型上的符号,意思 ,可以直接将课程实例传递给 DataMapper 举个例子 没有 需要单独定义一个方案;您的类属性类型声明是 计划.

要在DynamoDB记录中声明一个对应地图属性值的类, 简单的省略 table 注释 :

import {
    attribute, 
    hashKey,
    table,
} from '@aws/dynamodb-data-mapper-annotations';
import {embed} from '@aws/dynamodb-data-mapper';

class Comment {
    @attribute()
    author?: string;

    @attribute()
    postedAt?: Date;

    @attribute()
    text?: string;
}

@table('posts')
class BlogPost {
    @hashKey()
    id: string;

    @attribute()
    author?: string;

    @attribute()
    postedAt?: Date;

    @attribute()
    text?: string;
    
    @attribute({memberType: embed(Comment)})
    replies?: Array<Comment>
}

支持的说明

attribute

在映射的 DynamoDB 记录中标记属性 。 注释 将尝试从 TypeScript 类型推断正确的 DynamoDB 类型 元数据,虽然没有任何通用类型参数的元数据 已使用.

attribute 必须调用为函数并接受可选参数 包含部分或完整的场图定义.

autoGeneratedHashKey

指定该财产代表记录的散列键。 如果没有键是 定义,将使用 V4 UUID .

autoGeneratedHashKey 必须调用为函数并接受可选 参数,包含部分或完整的字段方案定义.

hashKey

指定该财产代表记录的散列(分块)密钥.

hashKey 必须调用为函数并接受可选参数 包含部分或完整的场图定义.

rangeKey

指定属性代表记录范围(类型)密钥.

rangeKey 必须调用为函数并接受可选参数 包含部分或完整的场图定义.

table

指定一个类别作为DynatomDB的一个表格的代表.

table 必须以该表格名称作为唯一的参数.

versionAttribute

指定该属性代表记录的版本属性. 数据 映射器将使用乐观的锁定方式, 在 put 财务报告和审定财务报表 update 操作并发送条件表达式 put, (中文(简体) ), update,以及 delete 如果操作失败,则操作失败 数据库中的记录有一个版本编号,与所持有的版本号不符 客户.

versionAttribute 必须调用为函数并接受可选参数 包含部分或完整的场图定义.

洞穴

依赖实验类型脚本特性

因为这个软件包依赖于实验的 TypeScript 特性,所以它是主题 并应被视为β软件。 装潢师正在工作 eCMAScript标准轨迹,但所接受的形式可能与该轨迹不同 由 TypeScript 执行,这可能导致由 这个项目要改变.

缺乏通用材料的类别信息

请注意 TypeScript 不发布任何关于类型参数的元数据 用于通用类型,因此 Array<string>, (中文(简体) ), [number, string],以及 MyClass[] 全部暴露为 Array 通过释放的元数据。 无 附加元数据,此注释将把所有遇到的数组当作 未类型数据的收集。 您可以提供 members 声明或声明 memberType 将财产视为 分别是tuple或打入的列表.

地图和图集需要成员类型声明,尽管成员类型 如果财产被宣布为类型 BinarySet 或者说 NumberValueSet (从 @aws/dynamodb-auto-marshaller 软件包).

版本与发布记录

@aws/dynamodb-data-mapper-annotations 共发布 18 个版本,首次发布于 2017/11/21;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.7.3latest2018/08/168 年前
0.7.22018/07/268 年前
0.7.12018/07/218 年前
0.7.02018/07/118 年前
0.6.12018/06/298 年前
0.6.02018/06/178 年前

关于 @aws/dynamodb-data-mapper-annotations 的常见问题

@aws/dynamodb-data-mapper-annotations 是什么?

说明提供了 TypeScript 域对象和 @aws/dynamodb- data-mapper 库之间的简单整合

如何安装 @aws/dynamodb-data-mapper-annotations?

在项目目录运行 npm install @aws/dynamodb-data-mapper-annotations,或使用 pnpm add / yarn add / bun add。

@aws/dynamodb-data-mapper-annotations 支持 TypeScript 吗?

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

@aws/dynamodb-data-mapper-annotations 支持 ESM 还是 CommonJS?

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

@aws/dynamodb-data-mapper-annotations 可以商用吗?

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

@aws/dynamodb-data-mapper-annotations 的下载量有多少?

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

@aws/dynamodb-data-mapper-annotations 还在维护吗?

最新版本 0.7.3 发布于 2018/08/16(8 年前);至今共发布 18 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/11/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。