es-entity
Version:
ORM framework for Node js based on Ecmascript 6 and Typescript.
27 lines (21 loc) • 876 B
text/typescript
import Context from '../Context.js';
import WhereExprBuilder from '../model/WhereExprBuilder.js';
import * as model from '../model/index.js';
import * as types from '../model/types.js';
import DBSet from './DBSet.js';
import QuerySet from './QuerySet.js';
class LinkSet<T extends Object, U extends Object> extends QuerySet<T> {
private foreignFunc: types.IJoinFunc<WhereExprBuilder<T>, U>;
constructor(context: Context, entityType: types.IEntityType<T>, dbSet: DBSet, foreignFunc: types.IJoinFunc<WhereExprBuilder<T>, U>) {
super(context, entityType, dbSet);
this.foreignFunc = foreignFunc;
}
apply(parentObj: U) {
let eb = new model.WhereExprBuilder<T>(this.dbSet.fieldMap);
let expr = this.foreignFunc(eb, parentObj);
if (expr && expr.exps.length > 0) {
this.stat.where = this.stat.where.add(expr);
}
}
}
export default LinkSet;