ヘルパー関数
フレームワークは一般的な操作のための様々なヘルパー関数を提供します。
キーヘルパー
DynamoDBキーを操作するための関数。
addSortKeyVersion(sk: string, version: number): string
ソートキーにバージョンサフィックスを追加します。
import { addSortKeyVersion } from '@mbc-cqrs-serverless/core';
const versionedSk = addSortKeyVersion('CAT#001', 1);
// Result: 'CAT#001@1' (結果: 'CAT#001@1')
getSortKeyVersion(sk: string): number
ソートキーからバージョン番号を抽出します。バージョンサフィックスがない場合はVERSION_LATESTを返します。
import { getSortKeyVersion } from '@mbc-cqrs-serverless/core';
const version = getSortKeyVersion('CAT#001@3');
// Result: 3 (結果: 3)
const latestVersion = getSortKeyVersion('CAT#001');
// Result: VERSION_LATEST (-1) (結果: VERSION_LATEST (-1))
removeSortKeyVersion(sk: string): string
ソートキーからバージョンサフィックスを削除します。
import { removeSortKeyVersion } from '@mbc-cqrs-serverless/core';
const sk = removeSortKeyVersion('CAT#001@3');
// Result: 'CAT#001' (結果: 'CAT#001')
generateId(pk: string, sk: string): string
パーティションキーとソートキー(バージョンなし)を組み合わせて一意のIDを生成します。
import { generateId } from '@mbc-cqrs-serverless/core';
const id = generateId('TENANT#mbc', 'CAT#001@3');
// Result: 'TENANT#mbc#CAT#001' (結果: 'TENANT#mbc#CAT#001')
sortKeyBaseFromId(pk: string, itemId: string): string | undefined
generateId の逆操作: 複合IDからベースとなるソートキーを抽出します。IDが指定したパーティションキーで始まらない場合は undefined を返します。
import { sortKeyBaseFromId } from '@mbc-cqrs-serverless/core';
const skBase = sortKeyBaseFromId('TENANT#mbc', 'TENANT#mbc#CAT#001');
// Result: 'CAT#001' (結果: 'CAT#001')
parseTwoSegmentPkSkFromId(itemId: string): { pk: string; skBase: string } | undefined
複合IDをパーティションキーとベースソートキーに分割します。パーティションキーが2セグメント(タイプとテナントコード)であることを前提とします。IDのセグメントが3つ未満の場合は undefined を返します。
import { parseTwoSegmentPkSkFromId } from '@mbc-cqrs-serverless/core';
const result = parseTwoSegmentPkSkFromId('TENANT#mbc#CAT#001');
// result.pk is 'TENANT#mbc' and result.skBase is 'CAT#001' (result.pk は 'TENANT#mbc'、result.skBase は 'CAT#001' になります)
getTenantCode(pk: string): string | undefined
パーティションキーからテナントコードを抽出します。
import { getTenantCode } from '@mbc-cqrs-serverless/core';
const tenantCode = getTenantCode('TENANT#mbc');
// Result: 'mbc' (結果: 'mbc')
masterPk(tenantCode?: string): string
マスターデータ用のパーティションキーを生成します。
import { masterPk } from '@mbc-cqrs-serverless/core';
const pk = masterPk('mbc');
// Result: 'MASTER#mbc' (結果: 'MASTER#mbc')
const commonPk = masterPk();
// Result: 'MASTER#single' (結果: 'MASTER#single') (DEFAULT_TENANT_CODE)
seqPk(tenantCode?: string): string
シーケンス用のパーティションキーを生成します。
import { seqPk } from '@mbc-cqrs-serverless/core';
const pk = seqPk('mbc');
// Result: 'SEQ#mbc' (結果: 'SEQ#mbc')
ttlSk(tableName: string): string
テーブル用のTTLソートキーを生成します。TTL関連のレコードを識別するために使用されます。
import { ttlSk } from '@mbc-cqrs-serverless/core';
const sk = ttlSk('my-table');
// Result: 'TTL#my-table' (結果: 'TTL#my-table')
S3属 性ヘルパー
S3 URI属性を操作するための関数。
isS3AttributeKey(attributes: any): boolean
属性値がS3 URIかどうかを確認します。
import { isS3AttributeKey } from '@mbc-cqrs-serverless/core';
const isS3 = isS3AttributeKey('s3://my-bucket/path/to/file.pdf');
// Result: true (結果: true)
const isNotS3 = isS3AttributeKey('regular string');
// Result: false (結果: false)