UNPKG

@sequeljs/ast

Version:

A SQL AST manager for JavaScript

43 lines 1.21 kB
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