Viewing File: /home/ubuntu/efiexchange-node-base/node_modules/mysql-async-simple/index.js

const util = require('util');

function makeDb() {
  return {
    connect(connection) {
      return util.promisify( connection.connect )
        .call( connection );
    },
    query(connection, sql, args) {
      return util.promisify( connection.query )
        .call( connection, sql, args );
    },
    close(connection) {
      return util.promisify( connection.end ).call( connection );
    },
    beginTransaction(connection) {
      return util.promisify( connection.beginTransaction )
        .call( connection );
    },
    commit(connection) {
      return util.promisify( connection.commit )
        .call( connection );
    },
    rollback(connection) {
      return util.promisify( connection.rollback )
        .call( connection );
    }
  };
}

async function withTransaction( connection, db, callback ) {
  try {
    await db.beginTransaction(connection);
    await callback();
    await db.commit(connection);
  } catch ( err ) {
    await db.rollback(connection);
    throw err;
  } finally {
    await db.close(connection);
  }
}

module.exports = {
    makeDb,
    withTransaction
};
Back to Directory File Manager