UNPKG

@env0/dynamo-easy

Version:

DynamoDB client for NodeJS and browser with a fluent api to build requests. We take care of the type mapping between JS and DynamoDB, customizable trough typescript decorators.

26 lines 1.16 kB
/** * @module dynamo-easy */ import { dynamoEasyConfig } from '../config/dynamo-easy-config'; import { Metadata } from '../decorator/metadata/metadata'; import { metadataForModel } from '../decorator/metadata/metadata-for-model.function'; /** * only contains these characters «a-z A-Z 0-9 - _ .» and is between 3 and 255 characters long * http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-naming-rules * @hidden */ const REGEX_TABLE_NAME = /^[a-zA-Z0-9_\-.]{3,255}$/; /** * @hidden */ export function getTableName(metaDataOrModelClazz) { const modelOptions = metaDataOrModelClazz instanceof Metadata ? metaDataOrModelClazz.modelOptions : metadataForModel(metaDataOrModelClazz).modelOptions; const tableName = dynamoEasyConfig.tableNameResolver(modelOptions.tableName); if (!REGEX_TABLE_NAME.test(tableName)) { throw new Error(`make sure the table name «${tableName}» is valid (see http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-naming-rules for details)`); } return tableName; } //# sourceMappingURL=get-table-name.function.js.map