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;
}