dynamodb-update-expression-composer
TypeScript icon, indicating that this package has built-in type declarations

0.0.0 • Public • Published

AWS DynamoDB Update Expression Composer

二つのオブジェクトを比較し、DynamoDB の更新式に変換するライブラリです DynamoDB の差分更新を容易に適用することができます

import { composeUpdateExpressions } from "dynamodb-update-expression-composer";
const expressions1 = await composeUpdateExpressions(
  { array: [] },
  { array: [1] }
);
expect(expressions1.UpdateExpression).toBe("set #a0[0] = :va0");
const expressions2 = await composeUpdateExpressions(
  {
    hoge: ["WxrgLJ32SpSTJynRREmosQ"],
  },
  {
    hoge: ["e3oTy2YjRKSJMxyRuiczRQ", "WxrgLJ32SpSTJynRREmosQ"],
  }
);
expect(expressions2.UpdateExpression).toBe("set #a0[0] = :va0,#a0[1] = :va1");
import { TransactWriteCommand } from "@aws-sdk/lib-dynamodb";
import * as ExpressionComposer from "dynamodb-update-expression-composer";
const before = {
  pk: "primary",
  value: 0,
};
const after = {
  pk: "primary",
  value: 1,
};
const updateExpression = ExpressionComposer.composeUpdateExpressions(
  before,
  after
);

const command = new TransactWriteCommand({
  TransactItems: [
    {
      Update: {
        TableName: "tableName",
        Key: {
          pk: "primary",
        },
        UpdateExpression: updateExpression.UpdateExpression,
        ExpressionAttributeNames: {
          ...updateExpression.ExpressionAttributeNames,
        },
        ExpressionAttributeValues: {
          ...updateExpression.ExpressionAttributeValues,
        },
      },
    },
  ],
});
ddbDoc.send(command);

Readme

Keywords

none

Package Sidebar

Install

npm i dynamodb-update-expression-composer

Weekly Downloads

0

Version

0.0.0

License

MIT

Unpacked Size

13.9 kB

Total Files

4

Last publish

Collaborators

  • trkbt10