Define property

Define property

Write the @DynamoProperty decorator on top of the property definition. This property will be added to DynamoItem. And @DynamoEntity is can convert to AttributeMap.

@DynamoEntity(...)
class Cat {
    @DynamoProperty({ keyType: KeyType.hash })
    id!: number;

    @DynamoProperty({ keyType: KeyType.sort })
    age!: number;

    @DynamoProperty({ keyType: KeyType.attr })
    name!: string;

    constructor(id: number, age: number, name: string) {
        this.id = id;
        this.age = age;
        this.name = name;
    }
}

For example,

const badCat: Cat = new Cat(0, 1, "garfield");
const dynamo: AttributeMap = Mapper.formation(badCat, Cat);

It will formationed as,

{
    "id": {
        "N": "0"
    },
    "age": {
        "N": "1"
    },
    "name": {
        "S": "garfield"
    }
}

Key Type

// Property Type of DynamoDB.
// Specially, HASH and RANGE are KeyType.
export enum KeyType {
    hash = "HASH",
    sort = "RANGE",
    attr = "ATTR"
}

Last updated