@sequeljs/ast
Version:
A SQL AST manager for JavaScript
43 lines • 1.21 kB
JavaScript
import DeleteManager from '../managers/DeleteManager';
import InsertManager from '../managers/InsertManager';
import UpdateManager from '../managers/UpdateManager';
import SQLLiteral from '../nodes/SQLLiteral';
export default class CRUD {
compileUpdate(values, pk) {
const um = new UpdateManager();
let relation;
if (values instanceof SQLLiteral) {
relation = this.ctx.from;
}
else {
relation = values[0][0].relation;
}
um.key = pk;
um.table(relation);
um.set(values);
if (this.ast.limit) {
um.take(this.ast.limit.expr);
}
um.order(...this.ast.orders);
um.wheres = this.ctx.wheres;
return um;
}
compileInsert(values) {
const im = this.createInsert();
im.insert(values);
return im;
}
createInsert() {
return new InsertManager();
}
compileDelete() {
const dm = new DeleteManager();
if (this.ast.limit) {
dm.take(this.ast.limit.expr);
}
dm.wheres = this.ctx.wheres;
dm.from(this.ctx.froms);
return dm;
}
}
//# sourceMappingURL=CRUD.js.map