egg-orm-ts
dep: egg-typed-di
Install
npm i egg-orm-ts --save
Example
a simple example
service:
@context()export class ActivityService { @lazyInject() private acitvityDomain: ActivityDomain; async getById(id: number) { return await this.acitvityDomain.getById(id); }}
domain:
@context()export class ActivityDomain extends BaseDomain { @lazyInject() repository: ActivityRepository; async getById(id: number) { return await this.repository.getById(id); }}
repository:
@repository(ActivityModel)export class ActivityRepository extends BaseRepository<ActivityModel> {} @repository(UserModel)export class UserRepository extends BaseRepository<UserModel> { @bindSql() async getByUsername(username: string) { } async add(model: UserModel) { } async updateByUsername(username: string, model: UserModel) { } async deleteByUsername(username: string) { }}
domain:
export class ActivityModel extends BaseModel { id: number; @manyToOne('owner', UserModel, 'getByUsername') user: Promise<UserModel>; @manyToOne('teamId', TeamModel) team: Promise<TeamModel>;} export class UserModel extends BaseModel { @column() id: number; @column() username: string;}