UNPKG

@dazejs/framework

Version:

Daze.js - A powerful web framework for Node.js

73 lines 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MysqlManager = void 0; const parser_1 = require("../parser"); const manager_1 = require("./manager"); const actuator_1 = require("../actuator"); const builder_1 = require("../builder"); class MysqlManager extends manager_1.Manager { constructor(pool) { super(); this.pool = pool; this.actuator = this.getDefaultActuator(); this.parser = this.getDefaultParser(); } close() { this.pool.end(); } getDefaultParser() { return new parser_1.MysqlParser(); } getDefaultActuator() { return new actuator_1.MysqlActuator(this.pool); } getTransactionActuator(connection) { return new actuator_1.MysqlTransactionActuator(connection); } table(table, as) { return (new builder_1.Builder(this.actuator, this.parser)).table(table, as); } beginTransaction() { return new Promise((resolve, reject) => { this.pool.getConnection((err, connection) => { if (err) return reject(err); const actuator = this.getTransactionActuator(connection); const builder = new builder_1.Builder(actuator, this.parser); connection.beginTransaction((error) => { if (error) return reject(error); resolve(builder); }); }); }); } async transaction(callback) { const conn = await this.beginTransaction(); try { await callback(conn); await conn.commit(); } catch (err) { await conn.rollback(); throw err; } } async query(query, bindings = []) { return this.actuator.query(query, bindings); } async select(query, bindings = []) { return this.query(query, bindings); } async insert(query, bindings = []) { return this.query(query, bindings).then((result) => result.insertId); } async update(query, bindings = []) { return this.query(query, bindings).then((result) => result.affectedRows); } async delete(query, bindings = []) { return this.query(query, bindings).then((result) => result.affectedRows); } } exports.MysqlManager = MysqlManager; //# sourceMappingURL=mysql-manager.js.map