mysql-await
Advanced tools
Comparing version 2.1.4 to 2.1.5
@@ -34,4 +34,11 @@ const fs = require(`fs`); | ||
/** Test error handling */ | ||
try { | ||
await connection.awaitQuery(`SELECTJKLSDF`); | ||
} catch (err) { | ||
console.log(err); | ||
} | ||
/** End the connection */ | ||
connection.awaitEnd(); | ||
})(); |
@@ -64,2 +64,9 @@ const fs = require(`fs`); | ||
/** Test error handling */ | ||
try { | ||
await connection2.awaitQuery(`SELECTJKLSDF`); | ||
} catch (err) { | ||
console.log(err); | ||
} | ||
/** Release connection */ | ||
@@ -66,0 +73,0 @@ connection2.release(); |
416
index.js
@@ -28,13 +28,9 @@ /** Require external modules */ | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.connection.beginTransaction((err) => { | ||
if ( err ) | ||
return reject(err); | ||
this.inTransaction = true; | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
this.connection.beginTransaction((err) => { | ||
if ( err ) | ||
return reject(err); | ||
this.inTransaction = true; | ||
resolve(); | ||
}); | ||
}); | ||
@@ -51,12 +47,8 @@ } | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.connection.changeUser(params, (err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
this.connection.changeUser(params, (err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
}); | ||
@@ -72,22 +64,18 @@ } | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.connection.commit((err) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.connection.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
}); | ||
} else { | ||
this.connection.commit((err) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.connection.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
} | ||
}); | ||
} else { | ||
this.inTransaction = false; | ||
resolve(); | ||
reject(err); | ||
} | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
} else { | ||
this.inTransaction = false; | ||
resolve(); | ||
} | ||
}); | ||
}); | ||
@@ -103,12 +91,8 @@ } | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.connection.connect((err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
this.connection.connect((err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
}); | ||
@@ -124,12 +108,8 @@ } | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.connection.destroy((err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
this.connection.destroy((err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
}); | ||
@@ -145,12 +125,8 @@ } | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.connection.end((err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
this.connection.end((err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
}); | ||
@@ -168,36 +144,32 @@ } | ||
return new Promise((resolve, reject) => { | ||
try { | ||
if ( typeof params === `undefined` ) { | ||
this.connection.query(query, (err, result) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.connection.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
}); | ||
} else { | ||
if ( typeof params === `undefined` ) { | ||
this.connection.query(query, (err, result) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.connection.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
} | ||
}); | ||
} else { | ||
resolve(result); | ||
reject(err); | ||
} | ||
}); | ||
} else { | ||
this.connection.query(query, params, (err, result) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.connection.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
}); | ||
} else { | ||
} else { | ||
resolve(result); | ||
} | ||
}); | ||
} else { | ||
this.connection.query(query, params, (err, result) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.connection.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
} | ||
}); | ||
} else { | ||
resolve(result); | ||
reject(err); | ||
} | ||
}); | ||
} | ||
} catch ( err ) { | ||
reject(err); | ||
} else { | ||
resolve(result); | ||
} | ||
}); | ||
} | ||
@@ -214,9 +186,5 @@ }); | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.connection.rollback(() => { | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
this.connection.rollback(() => { | ||
resolve(); | ||
}); | ||
}); | ||
@@ -335,12 +303,8 @@ } | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.pool.end((err) => { | ||
if ( err ) | ||
return reject(err); | ||
this.pool.end((err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
resolve(); | ||
}); | ||
}); | ||
@@ -358,142 +322,118 @@ } | ||
return new Promise(async (resolve, reject) => { | ||
try { | ||
this.pool.getConnection((err, connection) => { | ||
if ( err ) | ||
return reject(err); | ||
connection.inTransaction = false; | ||
/** | ||
* @signature awaitBeginTransaction() | ||
* @returns Promise | ||
* @description Begin a new transaction. | ||
*/ | ||
connection.awaitBeginTransaction = function () { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.beginTransaction((err) => { | ||
if ( err ) | ||
return reject(err); | ||
this.inTransaction = true; | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
this.pool.getConnection((err, connection) => { | ||
if ( err ) | ||
return reject(err); | ||
connection.inTransaction = false; | ||
/** | ||
* @signature awaitBeginTransaction() | ||
* @returns Promise | ||
* @description Begin a new transaction. | ||
*/ | ||
connection.awaitBeginTransaction = function () { | ||
return new Promise((resolve, reject) => { | ||
this.beginTransaction((err) => { | ||
if ( err ) | ||
return reject(err); | ||
this.inTransaction = true; | ||
resolve(); | ||
}); | ||
} | ||
}); | ||
} | ||
/** | ||
* @signature awaitChangeUser(params) | ||
* @param params Object First argument of MySQL's Connection.changeUser() | ||
* @returns Promise | ||
* @description Change the current user without shutting down socket. | ||
*/ | ||
connection.awaitChangeUser = function (params) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.changeUser(params, (err) => { | ||
if ( err ) | ||
return reject(err); | ||
/** | ||
* @signature awaitChangeUser(params) | ||
* @param params Object First argument of MySQL's Connection.changeUser() | ||
* @returns Promise | ||
* @description Change the current user without shutting down socket. | ||
*/ | ||
connection.awaitChangeUser = function (params) { | ||
return new Promise((resolve, reject) => { | ||
this.changeUser(params, (err) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
resolve(); | ||
}); | ||
}); | ||
} | ||
/** | ||
* @signature awaitCommit() | ||
* @returns Promise | ||
* @description Commit a transaction. | ||
*/ | ||
connection.awaitCommit = function () { | ||
return new Promise((resolve, reject) => { | ||
this.commit((err) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.connection.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
}); | ||
} else { | ||
this.inTransaction = false; | ||
reject(err); | ||
} | ||
} else { | ||
this.inTransaction = false; | ||
resolve(); | ||
} | ||
}); | ||
} | ||
}); | ||
}; | ||
/** | ||
* @signature awaitCommit() | ||
* @returns Promise | ||
* @description Commit a transaction. | ||
*/ | ||
connection.awaitCommit = function () { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.commit((err) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.connection.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
}); | ||
} else { | ||
/** | ||
* @signature awaitQuery(query[, params]) | ||
* @param query string First argument of MySQL's Connection.query() | ||
* @param params Array (optional) Second argument of MySQL's Connection.query() if not used for callback | ||
* @returns Promise | ||
* @description Queries the MySQL database, returning a [Promise] that resolves when finished or rejects on error. | ||
*/ | ||
connection.awaitQuery = function (query, params) { | ||
return new Promise((resolve, reject) => { | ||
if ( typeof params === `undefined` ) { | ||
this.query(query, (err, result) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(result); | ||
}); | ||
} else { | ||
this.query(query, params, (err, result) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
} | ||
}); | ||
} else { | ||
this.inTransaction = false; | ||
resolve(); | ||
reject(err); | ||
} | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
}); | ||
}; | ||
/** | ||
* @signature awaitQuery(query[, params]) | ||
* @param query string First argument of MySQL's Connection.query() | ||
* @param params Array (optional) Second argument of MySQL's Connection.query() if not used for callback | ||
* @returns Promise | ||
* @description Queries the MySQL database, returning a [Promise] that resolves when finished or rejects on error. | ||
*/ | ||
connection.awaitQuery = function (query, params) { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
if ( typeof params === `undefined` ) { | ||
this.query(query, (err, result) => { | ||
if ( err ) | ||
return reject(err); | ||
resolve(result); | ||
}); | ||
} else { | ||
this.query(query, params, (err, result) => { | ||
if ( err ) { | ||
if ( this.inTransaction ) { | ||
this.rollback(() => { | ||
this.inTransaction = false; | ||
reject(err); | ||
}); | ||
} else { | ||
reject(err); | ||
} | ||
} else { | ||
resolve(result); | ||
} | ||
}); | ||
resolve(result); | ||
} | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
}); | ||
} | ||
}); | ||
}; | ||
/** | ||
* @signature awaitRollback() | ||
* @returns Promise | ||
* @description Rolls back a transaction. | ||
*/ | ||
connection.awaitRollback = function () { | ||
return new Promise((resolve, reject) => { | ||
this.rollback(() => { | ||
resolve(); | ||
}); | ||
}; | ||
/** | ||
* @signature awaitRollback() | ||
* @returns Promise | ||
* @description Rolls back a transaction. | ||
*/ | ||
connection.awaitRollback = function () { | ||
return new Promise((resolve, reject) => { | ||
try { | ||
this.rollback(() => { | ||
resolve(); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
}); | ||
}; | ||
resolve(connection); | ||
}); | ||
} catch ( err ) { | ||
reject(err); | ||
} | ||
}); | ||
}; | ||
resolve(connection); | ||
}); | ||
}); | ||
@@ -594,3 +534,3 @@ }; | ||
format() { | ||
return mysql.format(data); | ||
return mysql.format(...arguments); | ||
} | ||
@@ -597,0 +537,0 @@ } |
{ | ||
"name": "mysql-await", | ||
"version": "2.1.4", | ||
"version": "2.1.5", | ||
"description": "Simple MySQL Async/Await Connection Pool", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -1,2 +0,2 @@ | ||
# MySQL Async/Await Wrapper v2.1.4 | ||
# MySQL Async/Await Wrapper v2.1.5 | ||
@@ -3,0 +3,0 @@ Simple wrapper for MySQL async/await functionality. Intended for functionality to mimic the popular [mysql](https://github.com/mysqljs/mysql) Node.js callback-based package, but with additional methods for awaiting execution. Goal is for normal methods to be unaffected and only additional await methods added, though accomplished through intermediary class objects. |
24674
563