@sequeljs/ast
Version:
A SQL AST manager for JavaScript
34 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const SQLString_1 = require("../collectors/SQLString");
const EngineNotSetError_1 = require("../errors/EngineNotSetError");
const VisitorNotSetError_1 = require("../errors/VisitorNotSetError");
const SequelAST_1 = require("../SequelAST");
class TreeManager {
constructor(ast) {
this.ctx = null;
this.ast = ast;
}
toSQL(engine = undefined) {
let currentEngine = engine;
if (typeof currentEngine === 'undefined') {
currentEngine = SequelAST_1.default.engine;
}
if (!currentEngine) {
throw new EngineNotSetError_1.default();
}
if (!currentEngine.connection.visitor) {
throw new VisitorNotSetError_1.default();
}
let collector;
collector = new SQLString_1.default();
collector = currentEngine.connection.visitor.accept(this.ast, collector);
return collector.value;
}
where(expr) {
this.ctx.wheres.push(expr);
return this;
}
}
exports.default = TreeManager;
//# sourceMappingURL=TreeManager.js.map