@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
text/typescript
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);
};
}