Skip to content

Commit

Permalink
rm errorCallback, add normalizeMethod; cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
Maxim Grishaev committed Jul 12, 2014
1 parent cb83565 commit 1b0494d
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 55 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Expand Up @@ -18,4 +18,5 @@ npm-debug.log
test/support/big.db
test/tmp
test/nw/app.nw
.DS_Store
.DS_Store
.idea
108 changes: 54 additions & 54 deletions lib/sqlite3.js
@@ -1,16 +1,24 @@
var path = require('path');
var binary = require('node-pre-gyp');
var path = require('path')
var path = require('path');
var binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json')));
var binding = require(binding_path);
var sqlite3 = module.exports = exports = binding;
var util = require('util');
var EventEmitter = require('events').EventEmitter;

function errorCallback(args) {
if (typeof args[args.length - 1] === 'function') {
var callback = args[args.length - 1];
return function(err) { if (err) callback(err); };
function normalizeMethod (fn) {
return function (sql) {
var errBack;
var args = Array.prototype.slice.call(arguments, 1);
if (typeof args[args.length - 1] === 'function') {
var callback = args[args.length - 1];
errBack = function(err) {
if (err) {
callback(err);
}
};
}
var statement = new Statement(this, sql, errBack);
return fn.call(this, statement, args);
}
}

Expand Down Expand Up @@ -55,56 +63,40 @@ inherits(Database, EventEmitter);
inherits(Statement, EventEmitter);

// Database#prepare(sql, [bind1, bind2, ...], [callback])
Database.prototype.prepare = function(sql) {
var params = Array.prototype.slice.call(arguments, 1);

if (!params.length || (params.length === 1 && typeof params[0] === 'function')) {
return new Statement(this, sql, params[0]);
}
else {
var statement = new Statement(this, sql, errorCallback(params));
return statement.bind.apply(statement, params);
}
};
Database.prototype.prepare = normalizeMethod(function(statement, params) {
return params.length
? statement.bind.apply(statement, params)
: statement;
});

// Database#run(sql, [bind1, bind2, ...], [callback])
Database.prototype.run = function(sql) {
var params = Array.prototype.slice.call(arguments, 1);
var statement = new Statement(this, sql, errorCallback(params));
Database.prototype.run = normalizeMethod(function(statement, params) {
statement.run.apply(statement, params).finalize();
return this;
};
});

// Database#get(sql, [bind1, bind2, ...], [callback])
Database.prototype.get = function(sql) {
var params = Array.prototype.slice.call(arguments, 1);
var statement = new Statement(this, sql, errorCallback(params));
Database.prototype.get = normalizeMethod(function(statement, params) {
statement.get.apply(statement, params).finalize();
return this;
};
});

// Database#all(sql, [bind1, bind2, ...], [callback])
Database.prototype.all = function(sql) {
var params = Array.prototype.slice.call(arguments, 1);
var statement = new Statement(this, sql, errorCallback(params));
Database.prototype.all = normalizeMethod(function(statement, params) {
statement.all.apply(statement, params).finalize();
return this;
};
});

// Database#each(sql, [bind1, bind2, ...], [callback], [complete])
Database.prototype.each = function(sql) {
var params = Array.prototype.slice.call(arguments, 1);
var statement = new Statement(this, sql, errorCallback(params));
Database.prototype.each = normalizeMethod(function(statement, params) {
statement.each.apply(statement, params).finalize();
return this;
};
});

Database.prototype.map = function(sql) {
var params = Array.prototype.slice.call(arguments, 1);
var statement = new Statement(this, sql, errorCallback(params));
Database.prototype.map = normalizeMethod(function(statement, params) {
statement.map.apply(statement, params).finalize();
return this;
};
});

Statement.prototype.map = function() {
var params = Array.prototype.slice.call(arguments);
Expand Down Expand Up @@ -164,22 +156,30 @@ Database.prototype.removeAllListeners = function(type) {
sqlite3.verbose = function() {
if (!isVerbose) {
var trace = require('./trace');
trace.extendTrace(Database.prototype, 'prepare');
trace.extendTrace(Database.prototype, 'get');
trace.extendTrace(Database.prototype, 'run');
trace.extendTrace(Database.prototype, 'all');
trace.extendTrace(Database.prototype, 'each');
trace.extendTrace(Database.prototype, 'map');
trace.extendTrace(Database.prototype, 'exec');
trace.extendTrace(Database.prototype, 'close');
trace.extendTrace(Statement.prototype, 'bind');
trace.extendTrace(Statement.prototype, 'get');
trace.extendTrace(Statement.prototype, 'run');
trace.extendTrace(Statement.prototype, 'all');
trace.extendTrace(Statement.prototype, 'each');
trace.extendTrace(Statement.prototype, 'map');
trace.extendTrace(Statement.prototype, 'reset');
trace.extendTrace(Statement.prototype, 'finalize');
[
'prepare',
'get',
'run',
'all',
'each',
'map',
'close',
'exec'
].forEach(function (name) {
trace.extendTrace(Database.prototype, name);
});
[
'bind',
'get',
'run',
'all',
'each',
'map',
'reset',
'finalize',
].forEach(function (name) {
trace.extendTrace(Statement.prototype, name);
});
isVerbose = true;
}

Expand Down

0 comments on commit 1b0494d

Please sign in to comment.