nestjs-express-cassandra
Version:
Express-cassandra module for Nest framework
49 lines (42 loc) • 1.36 kB
text/typescript
import { ColumnOptions } from '../interfaces/decorators.interface';
import { addEntityColumn, addEntityOptions } from '../utils/metadata';
export function Column(options: ColumnOptions): PropertyDecorator {
return (target, propertyName) => {
addEntityColumn(target, propertyName, options);
};
}
export function VersionColumn(): PropertyDecorator {
return (target, propertyName) => {
addEntityOptions(target, { options: { versions: { key: propertyName } } });
};
}
export function CreateDateColumn(): PropertyDecorator {
return (target: object, propertyName: string | symbol) => {
addEntityOptions(target, {
options: { timestamps: { createdAt: propertyName } },
});
};
}
export function UpdateDateColumn(): PropertyDecorator {
return (target: object, propertyName: string | symbol) => {
addEntityOptions(target, {
options: { timestamps: { updatedAt: propertyName } },
});
};
}
export function TimeUUIDColumn(): PropertyDecorator {
return (target, propertyName) => {
addEntityColumn(target, propertyName, {
type: 'timeuuid',
default: { $db_function: 'now()' },
});
};
}
export function UUIDColumn(): PropertyDecorator {
return (target, propertyName) => {
addEntityColumn(target, propertyName, {
type: 'uuid',
default: { $db_function: 'uuid()' },
});
};
}