UNPKG

@cyber-rom/nestjs-scylladb

Version:

Based on https://www.npmjs.com/package/@ouato/nestjs-express-cassandra With support columns name mapping

18 lines (14 loc) 828 B
import {EntityOptions} from '../interfaces'; import {setEntityName, addOptions} from '../utils/decorator.utils'; export function Entity<T = any>(options?: EntityOptions<T>): ClassDecorator; export function Entity<T = any>(name?: string, options?: EntityOptions<T>): ClassDecorator; export function Entity(nameOrOptions?: string | EntityOptions, maybeOptions?: EntityOptions): ClassDecorator { const options: any = (typeof nameOrOptions === 'object' ? (nameOrOptions as EntityOptions) : maybeOptions) || {}; const name = typeof nameOrOptions === 'string' ? nameOrOptions : options.table_name; return (target): void => { options.classMethods = target; options.instanceMethods = target.prototype; setEntityName(target.prototype, name); addOptions(target.prototype, options); }; }