UNPKG

@sequeljs/ast

Version:

A SQL AST manager for JavaScript

53 lines 1.59 kB
"use strict"; 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