@sequeljs/ast
Version:
A SQL AST manager for JavaScript
46 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const DeleteManager_1 = require("../managers/DeleteManager");
const InsertManager_1 = require("../managers/InsertManager");
const UpdateManager_1 = require("../managers/UpdateManager");
const SQLLiteral_1 = require("../nodes/SQLLiteral");
class CRUD {
compileUpdate(values, pk) {
const um = new UpdateManager_1.default();
let relation;
if (values instanceof SQLLiteral_1.default) {
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_1.default();
}
compileDelete() {
const dm = new DeleteManager_1.default();
if (this.ast.limit) {
dm.take(this.ast.limit.expr);
}
dm.wheres = this.ctx.wheres;
dm.from(this.ctx.froms);
return dm;
}
}
exports.default = CRUD;
//# sourceMappingURL=CRUD.js.map