Skip to content
Snippets Groups Projects
Commit 13d478bc authored by Hossam Fares's avatar Hossam Fares
Browse files

Merge pull request #2 from namshi/remove-bluebird

Use `q` instead of `bluebird`
parents 63fd6a95 e14bef8b
No related branches found
No related tags found
No related merge requests found
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
Small promises wrapper for [`mysql2`](https://github.com/sidorares/node-mysql2), Small promises wrapper for [`mysql2`](https://github.com/sidorares/node-mysql2),
it's forked and compatible with [`mysql-promise`](https://github.com/martinj/node-mysql-promise). it's forked and compatible with [`mysql-promise`](https://github.com/martinj/node-mysql-promise).
[![build status](https://secure.travis-ci.org/namshi/node-mysql2-promise.png)](http://travis-ci.org/namshi/node-mysql2-promise) [![build status](https://api.travis-ci.com/namshi/node-mysql2-promise.svg?token=tS5zF7JF9Zh1pepFK56c)](http://travis-ci.org/namshi/node-mysql2-promise)
## Installation ## Installation
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
'use strict'; 'use strict';
var Promise = require('bluebird'), var Q = require('q');
mysql = require('mysql2'), var mysql2 = require('mysql2');
instances = {}; var instances = {};
function DB() { function DB() {
this.pool = null; this.pool = null;
...@@ -15,7 +15,7 @@ function DB() { ...@@ -15,7 +15,7 @@ function DB() {
* @param {Object} config * @param {Object} config
*/ */
DB.prototype.configure = function (config) { DB.prototype.configure = function (config) {
this.pool = mysql.createPool(config); this.pool = mysql2.createPool(config);
}; };
/** /**
...@@ -25,29 +25,32 @@ DB.prototype.configure = function (config) { ...@@ -25,29 +25,32 @@ DB.prototype.configure = function (config) {
* @return {Promise} * @return {Promise}
*/ */
DB.prototype.query = function (query, params) { DB.prototype.query = function (query, params) {
var defer = Promise.defer();
params = params || {}; params = params || {};
var db = this;
this.pool.getConnection(function (err, con) { return Q.Promise(function (resolve, reject) {
if (err) { db.pool.getConnection(function (err, con) {
if (con) {
con.release();
}
return defer.reject(err);
}
con.query(query, params, function (err) {
if (err) { if (err) {
if (con) { if (con) {
con.release(); con.release();
} }
return defer.reject(err);
reject(err);
} }
defer.resolve([].splice.call(arguments, 1));
con.release(); con.query(query, params, function (err) {
if (err) {
if (con) {
con.release();
}
reject(err);
}
resolve([].splice.call(arguments, 1));
con.release();
});
}); });
}); });
return defer.promise;
}; };
/** /**
...@@ -57,35 +60,40 @@ DB.prototype.query = function (query, params) { ...@@ -57,35 +60,40 @@ DB.prototype.query = function (query, params) {
* @return {Promise} * @return {Promise}
*/ */
DB.prototype.execute = function (query, params) { DB.prototype.execute = function (query, params) {
var defer = Promise.defer();
params = params || {}; params = params || {};
var db = this;
this.pool.getConnection(function (err, con) { return Q.Promise(function (resolve, reject) {
if (err) { db.pool.getConnection(function (err, con) {
if (con) {
con.release();
}
return defer.reject(err);
}
con.execute(query, params, function (err) {
if (err) { if (err) {
if (con) { if (con) {
con.release(); con.release();
} }
return defer.reject(err);
reject(err);
} }
defer.resolve([].splice.call(arguments, 1));
con.release(); con.execute(query, params, function (err) {
if (err) {
if (con) {
con.release();
}
reject(err);
}
resolve([].splice.call(arguments, 1));
con.release();
});
}); });
}); });
return defer.promise;
}; };
module.exports = function (name) { module.exports = function (name) {
name = name || '_default_'; name = name || '_default_';
if (!instances[name]) { if (!instances[name]) {
instances[name] = new DB(); instances[name] = new DB();
} }
return instances[name]; return instances[name];
}; };
{ {
"name": "mysql2-promise", "name": "mysql2-promise",
"version": "0.0.1", "version": "0.1.1",
"description": "Small wrapper for mysql2 that use promises.", "description": "Small promises wrapper for mysql2.",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "./node_modules/.bin/jshint index.js && ./node_modules/.bin/mocha test/*.test.js", "test": "jshint index.js && ./node_modules/.bin/mocha test/*.test.js",
"release": "npm test && release-it -n -i patch", "release": "npm test && release-it -n -i patch",
"release:minor": "npm test && release-it -n -i minor", "release:minor": "npm test && release-it -n -i minor",
"release:major": "npm test && release-it -n -i major" "release:major": "npm test && release-it -n -i major"
...@@ -17,8 +17,10 @@ ...@@ -17,8 +17,10 @@
"url": "https://github.com/namshi/node-mysql2-promise" "url": "https://github.com/namshi/node-mysql2-promise"
}, },
"keywords": [ "keywords": [
"mysql", "mysql2",
"promise" "promise",
"q",
"mysql-promise"
], ],
"author": "Hossam Fares <hossam.fares@namshi.com>", "author": "Hossam Fares <hossam.fares@namshi.com>",
"license": "MIT", "license": "MIT",
...@@ -26,13 +28,17 @@ ...@@ -26,13 +28,17 @@
"url": "https://github.com/namshi/node-mysql2-promise/issues" "url": "https://github.com/namshi/node-mysql2-promise/issues"
}, },
"dependencies": { "dependencies": {
"bluebird": "^2.1.3", "mysql2": "^0.15.5",
"mysql2": "^0.15.5" "q": "^1.3.0"
}, },
"devDependencies": { "devDependencies": {
"jshint": "~2.1.10", "jshint": "~2.1.10",
"mocha": "1.17.1", "mocha": "1.17.1",
"release-it": "0.0.9", "release-it": "0.0.9",
"should": "3.1.3" "should": "3.1.3"
},
"homepage": "https://github.com/namshi/node-mysql2-promise",
"directories": {
"test": "test"
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment