Socket
Socket
Sign inDemoInstall

mysql2

Package Overview
Dependencies
Maintainers
3
Versions
184
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mysql2 - npm Package Compare versions

Comparing version 1.3.2 to 1.3.3

9

Changelog.md

@@ -0,3 +1,8 @@

1.3.3 ( 8/06/2017 )
- fix node encodings lookup in string parser #583, #582
- fix connection not released to the pool on error #579, #551, #540, #508, #569
- better stack traces in promise wrapper #580, #530
1.3.2 ( 31/05/2017 )
- fix PromiseConnection.prepare and add #574, 575
- fix PromiseConnection.prepare and add #574, #575
PromisePreparedStatementInfo

@@ -9,3 +14,3 @@

1.3.0 ( 29/05/2017 )
- Make Promise Pool wrapper extend EventEmitter #567, 468
- Make Promise Pool wrapper extend EventEmitter #567, #468
- build: integrate prettier #563

@@ -12,0 +17,0 @@ - do not send 23 unallocated bytes over wire #547

@@ -31,4 +31,6 @@ var EventEmitter = require('events').EventEmitter;

this.onResult(err);
this.emit('end');
} else {
this.emit('error', err);
this.emit('end');
}

@@ -35,0 +37,0 @@ return true;

@@ -717,2 +717,3 @@ var Net = require('net');

}
executeCommand.emit('end');
return;

@@ -719,0 +720,0 @@ }

@@ -12,3 +12,6 @@ var Iconv = require('iconv-lite');

'hex'
];
].reduce(function (map, item) {
map[item] = Buffer.isEncoding(item);
return map;
}, {});

@@ -15,0 +18,0 @@ exports.decode = function(buffer, encoding, options) {

@@ -173,6 +173,5 @@ var mysql = require('../index.js');

conn.config.namedPlaceholders = useNamedPlaceholders;
return conn.execute(sql, values, function() {
const executeCmd = conn.execute(sql, values, cb);
executeCmd.once('end', function() {
conn.release();
cb.apply(this, arguments);
});

@@ -179,0 +178,0 @@ });

{
"name": "mysql2",
"version": "1.3.2",
"version": "1.3.3",
"description": "fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS",

@@ -56,3 +56,3 @@ "main": "index.js",

"object-assign": "^4.1.1",
"readable-stream": "2.2.9",
"readable-stream": "2.2.11",
"safe-buffer": "^5.0.1",

@@ -64,2 +64,3 @@ "seq-queue": "0.0.5",

"assert-diff": "^1.2.0",
"error-stack-parser": "^2.0.1",
"eslint": "^3.19.0",

@@ -71,4 +72,5 @@ "eslint-config-prettier": "^2.1.1",

"husky": "^0.13.3",
"is-async-supported": "^1.2.0",
"lint-staged": "^3.4.2",
"portfinder": "^1.0.10",
"lint-staged": "^3.4.2",
"prettier": "^1.3.1",

@@ -75,0 +77,0 @@ "prettier-markdown": "^0.1.6",

@@ -6,45 +6,63 @@ var core = require('./index.js');

function inheritEvents(source, target, events) {
events
.forEach(function (eventName) {
source.on(eventName, function () {
var args = [].slice.call(arguments);
args.unshift(eventName);
events.forEach(function(eventName) {
source.on(eventName, function() {
var args = [].slice.call(arguments);
args.unshift(eventName);
target.emit.apply(target, args);
});
target.emit.apply(target, args);
});
});
}
function createConnection (opts) {
var coreConnection = core.createConnection(opts);
var Promise = opts.Promise || global.Promise;
function createConnection(opts) {
const coreConnection = core.createConnection(opts);
const createConnectionErr = new Error();
const Promise = opts.Promise || global.Promise;
if (!Promise) {
throw new Error('no Promise implementation available.' +
'Use promise-enabled node version or pass userland Promise' +
' implementation as parameter, for example: { Promise: require(\'bluebird\') }');
throw new Error(
'no Promise implementation available.' +
'Use promise-enabled node version or pass userland Promise' +
" implementation as parameter, for example: { Promise: require('bluebird') }"
);
}
return new Promise(function (resolve, reject) {
coreConnection.once('connect', function (connectParams) {
return new Promise(function(resolve, reject) {
coreConnection.once('connect', function(connectParams) {
resolve(new PromiseConnection(coreConnection, Promise));
});
coreConnection.once('error', reject);
coreConnection.once('error', err => {
createConnectionErr.message = err.message;
createConnectionErr.code = err.code;
createConnectionErr.errno = err.errno;
createConnectionErr.sqlState = err.sqlState;
reject(createConnectionErr);
});
});
}
function PromiseConnection (connection, promiseImpl) {
function PromiseConnection(connection, promiseImpl) {
this.connection = connection;
this.Promise = promiseImpl;
inheritEvents(connection, this, ['error', 'drain', 'connect', 'end', 'enqueue']);
inheritEvents(connection, this, [
'error',
'drain',
'connect',
'end',
'enqueue'
]);
}
util.inherits(PromiseConnection, EventEmitter);
PromiseConnection.prototype.release = function () {
PromiseConnection.prototype.release = function() {
this.connection.release();
};
function makeDoneCb (resolve, reject) {
return function (err, rows, fields) {
function makeDoneCb(resolve, reject, localErr) {
return function(err, rows, fields) {
if (err) {
reject(err);
localErr.message = err.message;
localErr.code = err.code;
localErr.errno = err.errno;
localErr.sqlState = err.sqlState;
reject(localErr);
} else {

@@ -56,6 +74,7 @@ resolve([rows, fields]);

PromiseConnection.prototype.query = function (query, params) {
var c = this.connection;
return new this.Promise(function (resolve, reject) {
var done = makeDoneCb(resolve, reject);
PromiseConnection.prototype.query = function(query, params) {
const c = this.connection;
const localErr = new Error();
return new this.Promise(function(resolve, reject) {
const done = makeDoneCb(resolve, reject, localErr);
if (params) {

@@ -69,6 +88,7 @@ c.query(query, params, done);

PromiseConnection.prototype.execute = function (query, params) {
PromiseConnection.prototype.execute = function(query, params) {
var c = this.connection;
return new this.Promise(function (resolve, reject) {
var done = makeDoneCb(resolve, reject);
const localErr = new Error();
return new this.Promise(function(resolve, reject) {
var done = makeDoneCb(resolve, reject, localErr);
if (params) {

@@ -82,6 +102,6 @@ c.execute(query, params, done);

PromiseConnection.prototype.end = function () {
PromiseConnection.prototype.end = function() {
var c = this.connection;
return new this.Promise(function (resolve, reject) {
c.end(function () {
return new this.Promise(function(resolve, reject) {
c.end(function() {
resolve();

@@ -92,6 +112,7 @@ });

PromiseConnection.prototype.beginTransaction = function () {
PromiseConnection.prototype.beginTransaction = function() {
var c = this.connection;
return new this.Promise(function (resolve, reject) {
var done = makeDoneCb(resolve, reject);
const localErr = new Error();
return new this.Promise(function(resolve, reject) {
var done = makeDoneCb(resolve, reject, localErr);
c.beginTransaction(done);

@@ -101,6 +122,7 @@ });

PromiseConnection.prototype.commit = function () {
PromiseConnection.prototype.commit = function() {
var c = this.connection;
return new this.Promise(function (resolve, reject) {
var done = makeDoneCb(resolve, reject);
const localErr = new Error();
return new this.Promise(function(resolve, reject) {
var done = makeDoneCb(resolve, reject, localErr);
c.commit(done);

@@ -110,6 +132,7 @@ });

PromiseConnection.prototype.rollback = function () {
PromiseConnection.prototype.rollback = function() {
var c = this.connection;
return new this.Promise(function (resolve, reject) {
var done = makeDoneCb(resolve, reject);
const localErr = new Error();
return new this.Promise(function(resolve, reject) {
var done = makeDoneCb(resolve, reject, localErr);
c.rollback(done);

@@ -119,5 +142,5 @@ });

PromiseConnection.prototype.ping = function () {
PromiseConnection.prototype.ping = function() {
var c = this.connection;
return new this.Promise(function (resolve, reject) {
return new this.Promise(function(resolve, reject) {
c.ping(resolve);

@@ -127,8 +150,13 @@ });

PromiseConnection.prototype.connect = function () {
PromiseConnection.prototype.connect = function() {
var c = this.connection;
return new this.Promise(function (resolve, reject) {
c.connect(function (error, param) {
if (error) {
reject(error);
const localErr = new Error();
return new this.Promise(function(resolve, reject) {
c.connect(function(err, param) {
if (err) {
localErr.message = err.message;
localErr.code = err.code;
localErr.errno = err.errno;
localErr.sqlState = err.sqlState;
reject(localErr);
} else {

@@ -141,11 +169,19 @@ resolve(param);

PromiseConnection.prototype.prepare = function (options) {
PromiseConnection.prototype.prepare = function(options) {
var c = this.connection;
var promiseImpl = this.Promise;
return new this.Promise(function (resolve, reject) {
c.prepare(options, function (error, statement) {
if (error) {
reject(error);
const localErr = new Error();
return new this.Promise(function(resolve, reject) {
c.prepare(options, function(err, statement) {
if (err) {
localErr.message = err.message;
localErr.code = err.code;
localErr.errno = err.errno;
localErr.sqlState = err.sqlState;
reject(localErr);
} else {
var wrappedStatement = new PromisePreparedStatementInfo(statement, promiseImpl);
var wrappedStatement = new PromisePreparedStatementInfo(
statement,
promiseImpl
);
resolve(wrappedStatement);

@@ -157,3 +193,3 @@ }

function PromisePreparedStatementInfo (statement, promiseImpl) {
function PromisePreparedStatementInfo(statement, promiseImpl) {
this.statement = statement;

@@ -163,5 +199,5 @@ this.Promise = promiseImpl;

PromisePreparedStatementInfo.prototype.execute = function (parameters) {
PromisePreparedStatementInfo.prototype.execute = function(parameters) {
var s = this.statement;
return new this.Promise(function (resolve, reject) {
return new this.Promise(function(resolve, reject) {
var done = makeDoneCb(resolve, reject);

@@ -176,5 +212,5 @@ if (parameters) {

PromisePreparedStatementInfo.prototype.close = function () {
PromisePreparedStatementInfo.prototype.close = function() {
var s = this.statement;
return new this.Promise(function (resolve, reject) {
return new this.Promise(function(resolve, reject) {
s.close();

@@ -193,4 +229,3 @@ resolve();

// proxy synchronous functions only
(function (functionsToWrap) {
(function(functionsToWrap) {
for (var i = 0; functionsToWrap && i < functionsToWrap.length; i++) {

@@ -200,9 +235,11 @@ var func = functionsToWrap[i];

if (
typeof core.Connection.prototype[func] === 'function'
&& PromiseConnection.prototype[func] === undefined
typeof core.Connection.prototype[func] === 'function' &&
PromiseConnection.prototype[func] === undefined
) {
PromiseConnection.prototype[func] = (function factory (funcName) {
return function () {
return core.Connection
.prototype[funcName].apply(this.connection, arguments);
PromiseConnection.prototype[func] = (function factory(funcName) {
return function() {
return core.Connection.prototype[funcName].apply(
this.connection,
arguments
);
};

@@ -212,5 +249,4 @@ })(func);

}
})([
// synchronous functions
// synchronous functions
'close',

@@ -231,3 +267,3 @@ 'createBinlogStream',

this.Promise = Promise;
inheritEvents(pool, this, ['acquire', 'connection', 'enqueue', 'release']);

@@ -237,7 +273,7 @@ }

PromisePool.prototype.getConnection = function () {
PromisePool.prototype.getConnection = function() {
var corePool = this.pool;
return new this.Promise(function (resolve, reject) {
corePool.getConnection(function (err, coreConnection) {
return new this.Promise(function(resolve, reject) {
corePool.getConnection(function(err, coreConnection) {
if (err) {

@@ -252,7 +288,7 @@ reject(err);

PromisePool.prototype.query = function (sql, args) {
var corePool = this.pool;
return new this.Promise(function (resolve, reject) {
var done = makeDoneCb(resolve, reject);
PromisePool.prototype.query = function(sql, args) {
const corePool = this.pool;
const localErr = new Error();
return new this.Promise(function(resolve, reject) {
var done = makeDoneCb(resolve, reject, localErr);
if (args) {

@@ -266,17 +302,22 @@ corePool.query(sql, args, done);

PromisePool.prototype.execute = function (sql, values) {
PromisePool.prototype.execute = function(sql, values) {
var corePool = this.pool;
const localErr = new Error();
return new Promise(function (resolve, reject) {
corePool.execute(sql, values, makeDoneCb(resolve, reject));
return new Promise(function(resolve, reject) {
corePool.execute(sql, values, makeDoneCb(resolve, reject, localErr));
});
};
PromisePool.prototype.end = function () {
PromisePool.prototype.end = function() {
var corePool = this.pool;
return new Promise(function (resolve, reject) {
corePool.end(function (err) {
const localErr = new Error();
return new Promise(function(resolve, reject) {
corePool.end(function(err) {
if (err) {
reject(err);
localErr.message = err.message;
localErr.code = err.code;
localErr.errno = err.errno;
localErr.sqlState = err.sqlState;
reject(localErr);
} else {

@@ -289,9 +330,11 @@ resolve();

function createPool (opts) {
function createPool(opts) {
var corePool = core.createPool(opts);
var Promise = opts.Promise || global.Promise;
if (!Promise) {
throw new Error('no Promise implementation available.' +
'Use promise-enabled node version or pass userland Promise' +
' implementation as parameter, for example: { Promise: require(\'bluebird\') }');
throw new Error(
'no Promise implementation available.' +
'Use promise-enabled node version or pass userland Promise' +
" implementation as parameter, for example: { Promise: require('bluebird') }"
);
}

@@ -298,0 +341,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc