New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

larvitdb

Package Overview
Dependencies
Maintainers
1
Versions
165
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

larvitdb - npm Package Compare versions

Comparing version 1.2.7 to 1.3.0

142

larvitdb.js
'use strict';
const events = require('events'),
const topLogPrefix = 'larvitdb: larvitdb.js: ',
events = require('events'),
eventEmitter = new events.EventEmitter(),

@@ -15,4 +16,93 @@ async = require('async'),

// Wrap getConnection to log errors
function getConnection(cb) {
const logPrefix = topLogPrefix + 'getConnection() - ';
exports.pool.getConnection(function (err, dbCon) {
if (err) {
log.error(logPrefix + 'Could not get connection, err: ' + err.message);
return cb(err);
}
dbCon.org_beginTransaction = dbCon.beginTransaction;
dbCon.org_commit = dbCon.commit;
dbCon.org_query = dbCon.query;
dbCon.org_rollback = dbCon.rollback;
dbCon.beginTransaction = function beginTransaction(cb) {
const subLogPrefix = logPrefix + 'beginTransaction() - ';
dbCon.org_beginTransaction(function (err) {
if (err) {
log.error(subLogPrefix + err.message);
return cb(err);
}
cb(err);
});
};
dbCon.commit = function commit(cb) {
const subLogPrefix = logPrefix + 'commit() - ';
dbCon.org_commit(function (err) {
if (err) {
log.error(subLogPrefix + err.message);
return cb(err);
}
cb(err);
});
};
dbCon.query = function query(sql, dbFields, cb) {
const subLogPrefix = logPrefix + 'query() - ';
let startTime;
if (typeof dbFields === 'function') {
cb = dbFields;
dbFields = [];
}
if ( ! dbFields) {
dbFields = [];
}
startTime = process.hrtime();
dbCon.org_query(sql, dbFields, function (err, rows) {
const queryTime = utils.hrtimeToMs(startTime, 4);
log.debug(subLogPrefix + 'Ran SQL: "' + sql + '" with dbFields: ' + JSON.stringify(dbFields) + ' in ' + queryTime + 'ms');
if (err) {
log.error(subLogPrefix + err.message, ', SQL: "' + err.sql + '"');
}
cb(err, rows);
});
};
dbCon.rollback = function rollback(cb) {
const subLogPrefix = logPrefix + 'rollback() - ';
dbCon.org_rollback(function (err) {
if (err) {
log.error(subLogPrefix + err.message);
return cb(err);
}
cb(err);
});
};
cb(err, dbCon);
});
}
// Wrap the query function to log database errors or slow running queries
function query(sql, dbFields, options, cb) {
const logPrefix = topLogPrefix + 'query() - ';
try {

@@ -39,20 +129,19 @@ ready(function() {

if (options.retryNr === undefined) { options.retryNr = 0; }
if (options.ignoreLongQueryWarning === undefined) { options.ignoreLongQueryWarning = false; }
if (options.ignoreLongQueryWarning === undefined) { options.ignoreLongQueryWarning = true; }
if (exports.pool === undefined) {
let err = new Error('larvitdb: No pool configured. sql: "' + sql + '" dbFields: ' + JSON.stringify(dbFields));
log.error(err.message);
cb(err);
return;
const err = new Error('No pool configured. sql: "' + sql + '" dbFields: ' + JSON.stringify(dbFields));
log.error(logPrefix + err.message);
return cb(err);
}
startTime = process.hrtime();
startTime = process.hrtime();
exports.pool.query(sql, dbFields, function(err, rows, rowFields) {
const queryTime = utils.hrtimeToMs(startTime, 4);
const queryTime = utils.hrtimeToMs(startTime, 4);
if (conf.longQueryTime !== false && conf.longQueryTime < queryTime && options.ignoreLongQueryWarning !== true) {
log.warn('larvitdb: Ran SQL: "' + sql + '" with dbFields: ' + JSON.stringify(dbFields) + ' in ' + queryTime + 'ms');
log.warn(logPrefix + 'Ran SQL: "' + sql + '" with dbFields: ' + JSON.stringify(dbFields) + ' in ' + queryTime + 'ms');
} else {
log.debug('larvitdb: Ran SQL: "' + sql + '" with dbFields: ' + JSON.stringify(dbFields) + ' in ' + queryTime + 'ms');
log.debug(logPrefix + 'Ran SQL: "' + sql + '" with dbFields: ' + JSON.stringify(dbFields) + ' in ' + queryTime + 'ms');
}

@@ -69,3 +158,3 @@

if (options.retryNr <= conf.retries) {
log.warn('larvitdb: Retrying database recoverable error: ' + err.message + ' retryNr: ' + options.retryNr + ' SQL: "' + sql + '" dbFields: ' + JSON.stringify(dbFields));
log.warn(logPrefix + 'Retrying database recoverable error: ' + err.message + ' retryNr: ' + options.retryNr + ' SQL: "' + sql + '" dbFields: ' + JSON.stringify(dbFields));
setTimeout(function() {

@@ -77,10 +166,8 @@ query(sql, dbFields, {'retryNr': options.retryNr}, cb);

log.error('larvitdb: Exhausted retries (' + options.retryNr + ') for database recoverable error: ' + err.message + ' SQL: "' + sql + '" dbFields: ' + JSON.stringify(dbFields));
cb(err);
return;
log.error(logPrefix + 'Exhausted retries (' + options.retryNr + ') for database recoverable error: ' + err.message + ' SQL: "' + err.sql + '" dbFields: ' + JSON.stringify(dbFields));
return cb(err);
}
log.error('larvitdb: Database error msg: ' + err.message + ', code: "' + err.code + '" SQL: "' + sql + '" dbFields: ' + JSON.stringify(dbFields));
cb(err);
return;
log.error(logPrefix + 'Database error msg: ' + err.message + ', code: "' + err.code + '" SQL: "' + err.sql + '" dbFields: ' + JSON.stringify(dbFields));
return cb(err);
}

@@ -92,3 +179,3 @@

} catch (err) {
log.error('larvitdb: query() - Throwed error from database driver: ' + err.message);
log.error(logPrefix + 'Throwed error from database driver: ' + err.message);
cb(err);

@@ -99,3 +186,3 @@ }

function ready(cb) {
if (dbSetup) { cb(); return; }
if (dbSetup) return cb();

@@ -106,2 +193,4 @@ eventEmitter.once('checked', cb);

function removeAllTables(cb) {
const logPrefix = topLogPrefix + 'removeAllTables() - ';
try {

@@ -114,3 +203,3 @@ ready(function() {

if (err) {
log.error('larvitdb: removeAllTables() - Could not get a connection from the pool: ' + err.message);
log.error(logPrefix + 'Could not get a connection from the pool: ' + err.message);
cb(err);

@@ -129,3 +218,3 @@ return;

if (err) {
log.error('larvitdb: removeAllTables() - Error when running "SHOW TABLES": ' + err.message);
log.error(logPrefix + 'Error when running "SHOW TABLES": ' + err.message);
cb(err);

@@ -172,3 +261,3 @@ return;

} catch (err) {
log.error('larvitdb: removeAllTables() - Throwed error from database driver: ' + err.message);
log.error(logPrefix + 'Throwed error from database driver: ' + err.message);
cb(err);

@@ -179,2 +268,4 @@ }

function setup(thisConf, cb) {
const logPrefix = topLogPrefix + 'setup() - ';
try {

@@ -202,5 +293,5 @@ exports.conf = conf = thisConf;

if (err || rows.length === 0) {
log.error('larvitdb: setup() - Database connection test failed!');
log.error(logPrefix + 'Database connection test failed!');
} else {
log.info('larvitdb: setup() - Database connection test succeeded.');
log.info(logPrefix + 'Database connection test succeeded.');
}

@@ -216,3 +307,3 @@

} catch (err) {
log.error('larvitdb: setup() - Throwed error from database driver: ' + err.message);
log.error(logPrefix + 'Throwed error from database driver: ' + err.message);
cb(err);

@@ -222,2 +313,3 @@ }

exports.getConnection = getConnection;
exports.query = query;

@@ -224,0 +316,0 @@ exports.ready = ready;

2

package.json
{
"name": "larvitdb",
"version": "1.2.7",
"version": "1.3.0",
"description": "DB wrapper module for node.js",

@@ -5,0 +5,0 @@ "main": "larvitdb.js",

@@ -23,14 +23,5 @@ 'use strict';

db.query('SHOW TABLES', function(err, rows) {
if (err) {
log.error(err);
assert( ! err, 'err should be negative');
process.exit(1);
}
if (err) throw err;
if (rows.length) throw new Error('Database is not empty. To make a test, you must supply an empty database!');
if (rows.length) {
log.error('Database is not empty. To make a test, you must supply an empty database!');
assert.deepEqual(rows.length, 0);
process.exit(1);
}
done();

@@ -44,3 +35,3 @@ });

db.setup(require(confFile), function(err) {
assert( ! err, 'err should be negative');
if (err) throw err;

@@ -66,9 +57,5 @@ checkEmptyDb();

fs.stat(altConfFile, function(err) {
if (err) {
assert( ! err, 'fs.stat failed: ' + err.message);
}
if (err) throw err;
if ( ! err) {
runDbSetup(altConfFile);
}
runDbSetup(altConfFile);
});

@@ -86,13 +73,7 @@ } else {

tasks.push(function(cb) {
dbCon.query('CREATE TABLE `fjant` (`test` int NOT NULL) ENGINE=\'InnoDB\';', function(err) {
assert( ! err, 'err should be negative');
cb(err);
});
dbCon.query('CREATE TABLE `fjant` (`test` int NOT NULL) ENGINE=\'InnoDB\';', cb);
});
tasks.push(function(cb) {
dbCon.query('INSERT INTO `fjant` VALUES(13);', function(err) {
assert( ! err, 'err should be negative');
cb(err);
});
dbCon.query('INSERT INTO `fjant` VALUES(13);', cb);
});

@@ -102,5 +83,5 @@

dbCon.query('SELECT test FROM fjant', function(err, rows) {
assert( ! err, 'err should be negative');
assert.deepEqual(rows.length, 1);
assert.deepEqual(rows[0].test, 13);
if (err) throw err;
assert.strictEqual(rows.length, 1);
assert.strictEqual(rows[0].test, 13);
cb(err);

@@ -111,8 +92,8 @@ });

tasks.push(function(cb) {
dbCon.query('UPDATE fjant SET test = 7', function(err) {
assert( ! err, 'err should be negative');
dbCon.query('UPDATE fjant SET test = ?', [7], function(err) {
if (err) throw err;
dbCon.query('SELECT test FROM fjant', function(err, rows) {
assert( ! err, 'err should be negative');
assert.deepEqual(rows.length, 1);
assert.deepEqual(rows[0].test, 7);
if (err) throw err;
assert.strictEqual(rows.length, 1);
assert.strictEqual(rows[0].test, 7);
cb(err);

@@ -125,6 +106,6 @@ });

dbCon.query('DELETE FROM fjant', function(err) {
assert( ! err, 'err should be negative');
if (err) throw err;
dbCon.query('SELECT test FROM fjant', function(err, rows) {
assert( ! err, 'err should be negative');
assert.deepEqual(rows.length, 0);
if (err) throw err;
assert.strictEqual(rows.length, 0);
cb(err);

@@ -136,9 +117,9 @@ });

tasks.push(function(cb) {
dbCon.query('DROP TABLE fjant', function(err) {
assert( ! err, 'err should be negative');
cb(err);
});
dbCon.query('DROP TABLE fjant', cb);
});
async.series(tasks, cb);
async.series(tasks, function (err) {
if (err) throw err;
cb();
});
}

@@ -151,4 +132,4 @@

it('Queries on a single connection from the pool', function(done) {
db.pool.getConnection(function(err, dbCon) {
assert( ! err, 'err should be negative');
db.getConnection(function(err, dbCon) {
if (err) throw err;

@@ -172,10 +153,10 @@ dbTests(dbCon, done);

tasks.push(function(cb) {
db.pool.getConnection(function(err, dbCon) {
assert( ! err, 'err should be negative');
db.getConnection(function(err, dbCon) {
if (err) throw err;
dbCon.beginTransaction(function(err) {
assert( ! err, 'err should be negative');
if (err) throw err;
dbCon.query('INSERT INTO foobar VALUES(5)', function(err) {
assert( ! err, 'err should be negative');
if (err) throw err;

@@ -186,3 +167,3 @@ // If an error occurred in the queries, in a production environment

dbCon.commit(function(err) {
assert( ! err, 'err should be negative');
if (err) throw err;

@@ -198,13 +179,13 @@ cb(err);

tasks.push(function(cb) {
db.pool.getConnection(function(err, dbCon) {
assert( ! err, 'err should be negative');
db.getConnection(function(err, dbCon) {
if (err) throw err;
dbCon.beginTransaction(function(err) {
assert( ! err, 'err should be negative');
if (err) throw err;
dbCon.query('INSERT INTO foobar VALUES(5)', function(err) {
assert( ! err, 'err should be negative');
if (err) throw err;
dbCon.rollback(function(err) {
assert( ! err, 'err should be negative');
if (err) throw err;

@@ -223,4 +204,4 @@ cb(err);

db.query('SELECT SUM(baz) AS bazSum FROM foobar', function(err, rows) {
assert( ! err, 'err should be negative');
assert.deepEqual(rows[0].bazSum, 10);
if (err) throw err;
assert.strictEqual(Number(rows[0].bazSum), 10);
cb(err);

@@ -266,4 +247,4 @@ });

db.query('SHOW TABLES', function(err, rows) {
assert( ! err, 'err should be negative');
assert.deepEqual(rows.length, 0);
if (err) throw err;
assert.strictEqual(rows.length, 0);
cb();

@@ -270,0 +251,0 @@ });

Sorry, the diff of this file is not supported yet

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