@sequeljs/ast
Version:
A SQL AST manager for JavaScript
53 lines • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const InsertStatement_1 = require("../nodes/InsertStatement");
const SQLLiteral_1 = require("../nodes/SQLLiteral");
const ValuesList_1 = require("../nodes/ValuesList");
const TreeManager_1 = require("./TreeManager");
class InsertManager extends TreeManager_1.default {
get columns() {
return this.ast.columns;
}
set values(val) {
this.ast.values = val;
}
constructor() {
super(new InsertStatement_1.default());
this.ctx = this.ast;
}
createValues(values) {
return new ValuesList_1.default([values]);
}
createValuesList(rows) {
return new ValuesList_1.default(rows);
}
insert(fields) {
if (!fields || (Array.isArray(fields) && fields.length <= 0)) {
return this;
}
if (typeof fields === 'string') {
this.ast.values = new SQLLiteral_1.default(fields);
}
else {
if (!this.ast.relation) {
this.ast.relation = fields[0][0].relation;
}
const values = [];
fields.forEach(([column, value]) => {
this.ast.columns.push(column);
values.push(value);
});
this.ast.values = this.createValues(values);
}
return this;
}
into(table) {
this.ctx.relation = table;
return this;
}
select(select) {
this.ast.select = select;
}
}
exports.default = InsertManager;
//# sourceMappingURL=InsertManager.js.map