mirror of
https://github.com/spacebarchat/server.git
synced 2026-08-14 06:50:08 +00:00
31 lines
708 B
TypeScript
31 lines
708 B
TypeScript
import "reflect-metadata";
|
|
import { BaseEntity, BeforeInsert, BeforeUpdate, Column, PrimaryGeneratedColumn } from "typeorm";
|
|
import { Snowflake } from "../util/Snowflake";
|
|
import { IsString, validateOrReject } from "class-validator";
|
|
|
|
export class BaseClass extends BaseEntity {
|
|
@PrimaryGeneratedColumn()
|
|
@Column()
|
|
@IsString()
|
|
id: string;
|
|
|
|
constructor(props?: any, opts: { id?: string } = {}) {
|
|
super();
|
|
this.id = opts.id || Snowflake.generate();
|
|
Object.defineProperties(this, props);
|
|
}
|
|
|
|
@BeforeUpdate()
|
|
@BeforeInsert()
|
|
async validate() {
|
|
await validateOrReject(this, {});
|
|
}
|
|
}
|
|
|
|
// @ts-ignore
|
|
global.BaseClass = BaseClass;
|
|
|
|
var test = new BaseClass({});
|
|
|
|
setTimeout(() => {}, 10000 * 1000);
|