putItem

Spec

async putItem<TSource>(
    tnmInput: TynamoPutItemInput<TSource>
): Promise<TynamoPutItemOutput<TSource>>;

Input

export interface TynamoPutItemInput<TSource> {
    Item: TSource;
    ExpressionAttributeValues?: any;
    
    // Dervied from DynamoDB
    ReturnValues?: ReturnValue;
    ReturnConsumedCapacity?: ReturnConsumedCapacity;
    ReturnItemCollectionMetrics?: ReturnItemCollectionMetrics;
    ExpressionAttributeNames?: ExpressionAttributeNameMap;
    ConditionExpression?: ConditionExpression;
}

Name

Type

Info

Item

@DynamoEntity

Item to insert into the table.

ExpressionAttributeValues

@DynamoEntity

Value used for expression.

Unlisted param is derived from DynamoDB.

Check here for more information.

Output

export interface TynamoPutItemOutput<TSource> {
    Attributes?: TSource;
    
    // Derived from DynamoDB.
    $response: AWS.Response<PutItemOutput, AWS.AWSError>;
    ConsumedCapacity?: ConsumedCapacity;
    ItemCollectionMetrics?: ItemCollectionMetrics;
}

Name

Type

Info

Attributes

@DynamoEntity

The attribute values as they appeared before the PutItem operation, but only if ReturnValues is specified as ALL_OLD in the request.

Unlisted param is derived from DynamoDB.

Check here for more information.

Example

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

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

    constructor(id: number, name: string, favoriteNumbers: number[]) {
        this.id = id;
        this.name = name;
    }
}

const tynamo: Tynamo = new Tynamo({
    region: "ap-northeast-2",
    endpoint: "http://localhost:8000"
});
const tynamoTable = tynamo.getTableOf(Cat);


// Insert if, garfield is not exist.
await tynamoTable.putItem({
    Item: new Cat(666, "garfield"),
    ConditionExpression: "attribute_not_exists(#id)"
});

Last updated