UNPKG

@sequeljs/ast

Version:

A SQL AST manager for JavaScript

46 lines 1.36 kB
"use strict"; 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