UNPKG

@mbc-cqrs-serverless/core

Version:
67 lines 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ttlSk = exports.seqPk = exports.masterPk = void 0; exports.addSortKeyVersion = addSortKeyVersion; exports.getSortKeyVersion = getSortKeyVersion; exports.removeSortKeyVersion = removeSortKeyVersion; exports.generateId = generateId; exports.getTenantCode = getTenantCode; exports.isS3AttributeKey = isS3AttributeKey; exports.toS3AttributeKey = toS3AttributeKey; exports.parseS3AttributeKey = parseS3AttributeKey; const constants_1 = require("../constants"); const key_1 = require("../constants/key"); function addSortKeyVersion(sk, version) { return `${removeSortKeyVersion(sk)}${key_1.VER_SEPARATOR}${version}`; } function getSortKeyVersion(sk) { const lastDivIdx = sk.lastIndexOf(key_1.VER_SEPARATOR); if (lastDivIdx === -1) { return key_1.VERSION_LATEST; } return +sk.substring(lastDivIdx + 1); } function removeSortKeyVersion(sk) { const lastDivIdx = sk.lastIndexOf(key_1.VER_SEPARATOR); if (lastDivIdx === -1) { return sk; } return sk.substring(0, lastDivIdx); } function generateId(pk, sk) { return `${pk}${key_1.KEY_SEPARATOR}${removeSortKeyVersion(sk)}`; } function getTenantCode(pk) { const lastDivIdx = pk.lastIndexOf(key_1.KEY_SEPARATOR); if (lastDivIdx === -1) { return; } return pk.substring(lastDivIdx + 1); } const S3_PREFIX = 's3://'; const S3_PREFIX_LEN = S3_PREFIX.length; function isS3AttributeKey(attributes) { if (typeof attributes === 'string' && attributes.startsWith(S3_PREFIX)) { return true; } return false; } function toS3AttributeKey(bucket, key) { return `${S3_PREFIX}${bucket}/${key}`; } function parseS3AttributeKey(s3Uri) { const sepIdx = s3Uri.indexOf('/', S3_PREFIX_LEN); const bucket = s3Uri.substring(S3_PREFIX_LEN, sepIdx); const key = s3Uri.substring(1 + sepIdx); return { bucket, key, }; } const masterPk = (tenantCode) => `MASTER${key_1.KEY_SEPARATOR}${tenantCode || constants_1.DEFAULT_TENANT_CODE}`; exports.masterPk = masterPk; const seqPk = (tenantCode) => `SEQ${key_1.KEY_SEPARATOR}${tenantCode || constants_1.DEFAULT_TENANT_CODE}`; exports.seqPk = seqPk; const ttlSk = (tableName) => `TTL${key_1.KEY_SEPARATOR}${tableName}`; exports.ttlSk = ttlSk; //# sourceMappingURL=key.js.map