Skip to content

Commit 1b0494d

Browse files
author
Maxim Grishaev
committed
rm errorCallback, add normalizeMethod; cleanup
1 parent cb83565 commit 1b0494d

2 files changed

Lines changed: 56 additions & 55 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ npm-debug.log
1818
test/support/big.db
1919
test/tmp
2020
test/nw/app.nw
21-
.DS_Store
21+
.DS_Store
22+
.idea

lib/sqlite3.js

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,24 @@
1-
var path = require('path');
21
var binary = require('node-pre-gyp');
3-
var path = require('path')
2+
var path = require('path');
43
var binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json')));
54
var binding = require(binding_path);
65
var sqlite3 = module.exports = exports = binding;
7-
var util = require('util');
86
var EventEmitter = require('events').EventEmitter;
97

10-
function errorCallback(args) {
11-
if (typeof args[args.length - 1] === 'function') {
12-
var callback = args[args.length - 1];
13-
return function(err) { if (err) callback(err); };
8+
function normalizeMethod (fn) {
9+
return function (sql) {
10+
var errBack;
11+
var args = Array.prototype.slice.call(arguments, 1);
12+
if (typeof args[args.length - 1] === 'function') {
13+
var callback = args[args.length - 1];
14+
errBack = function(err) {
15+
if (err) {
16+
callback(err);
17+
}
18+
};
19+
}
20+
var statement = new Statement(this, sql, errBack);
21+
return fn.call(this, statement, args);
1422
}
1523
}
1624

@@ -55,56 +63,40 @@ inherits(Database, EventEmitter);
5563
inherits(Statement, EventEmitter);
5664

5765
// Database#prepare(sql, [bind1, bind2, ...], [callback])
58-
Database.prototype.prepare = function(sql) {
59-
var params = Array.prototype.slice.call(arguments, 1);
60-
61-
if (!params.length || (params.length === 1 && typeof params[0] === 'function')) {
62-
return new Statement(this, sql, params[0]);
63-
}
64-
else {
65-
var statement = new Statement(this, sql, errorCallback(params));
66-
return statement.bind.apply(statement, params);
67-
}
68-
};
66+
Database.prototype.prepare = normalizeMethod(function(statement, params) {
67+
return params.length
68+
? statement.bind.apply(statement, params)
69+
: statement;
70+
});
6971

7072
// Database#run(sql, [bind1, bind2, ...], [callback])
71-
Database.prototype.run = function(sql) {
72-
var params = Array.prototype.slice.call(arguments, 1);
73-
var statement = new Statement(this, sql, errorCallback(params));
73+
Database.prototype.run = normalizeMethod(function(statement, params) {
7474
statement.run.apply(statement, params).finalize();
7575
return this;
76-
};
76+
});
7777

7878
// Database#get(sql, [bind1, bind2, ...], [callback])
79-
Database.prototype.get = function(sql) {
80-
var params = Array.prototype.slice.call(arguments, 1);
81-
var statement = new Statement(this, sql, errorCallback(params));
79+
Database.prototype.get = normalizeMethod(function(statement, params) {
8280
statement.get.apply(statement, params).finalize();
8381
return this;
84-
};
82+
});
8583

8684
// Database#all(sql, [bind1, bind2, ...], [callback])
87-
Database.prototype.all = function(sql) {
88-
var params = Array.prototype.slice.call(arguments, 1);
89-
var statement = new Statement(this, sql, errorCallback(params));
85+
Database.prototype.all = normalizeMethod(function(statement, params) {
9086
statement.all.apply(statement, params).finalize();
9187
return this;
92-
};
88+
});
9389

9490
// Database#each(sql, [bind1, bind2, ...], [callback], [complete])
95-
Database.prototype.each = function(sql) {
96-
var params = Array.prototype.slice.call(arguments, 1);
97-
var statement = new Statement(this, sql, errorCallback(params));
91+
Database.prototype.each = normalizeMethod(function(statement, params) {
9892
statement.each.apply(statement, params).finalize();
9993
return this;
100-
};
94+
});
10195

102-
Database.prototype.map = function(sql) {
103-
var params = Array.prototype.slice.call(arguments, 1);
104-
var statement = new Statement(this, sql, errorCallback(params));
96+
Database.prototype.map = normalizeMethod(function(statement, params) {
10597
statement.map.apply(statement, params).finalize();
10698
return this;
107-
};
99+
});
108100

109101
Statement.prototype.map = function() {
110102
var params = Array.prototype.slice.call(arguments);
@@ -164,22 +156,30 @@ Database.prototype.removeAllListeners = function(type) {
164156
sqlite3.verbose = function() {
165157
if (!isVerbose) {
166158
var trace = require('./trace');
167-
trace.extendTrace(Database.prototype, 'prepare');
168-
trace.extendTrace(Database.prototype, 'get');
169-
trace.extendTrace(Database.prototype, 'run');
170-
trace.extendTrace(Database.prototype, 'all');
171-
trace.extendTrace(Database.prototype, 'each');
172-
trace.extendTrace(Database.prototype, 'map');
173-
trace.extendTrace(Database.prototype, 'exec');
174-
trace.extendTrace(Database.prototype, 'close');
175-
trace.extendTrace(Statement.prototype, 'bind');
176-
trace.extendTrace(Statement.prototype, 'get');
177-
trace.extendTrace(Statement.prototype, 'run');
178-
trace.extendTrace(Statement.prototype, 'all');
179-
trace.extendTrace(Statement.prototype, 'each');
180-
trace.extendTrace(Statement.prototype, 'map');
181-
trace.extendTrace(Statement.prototype, 'reset');
182-
trace.extendTrace(Statement.prototype, 'finalize');
159+
[
160+
'prepare',
161+
'get',
162+
'run',
163+
'all',
164+
'each',
165+
'map',
166+
'close',
167+
'exec'
168+
].forEach(function (name) {
169+
trace.extendTrace(Database.prototype, name);
170+
});
171+
[
172+
'bind',
173+
'get',
174+
'run',
175+
'all',
176+
'each',
177+
'map',
178+
'reset',
179+
'finalize',
180+
].forEach(function (name) {
181+
trace.extendTrace(Statement.prototype, name);
182+
});
183183
isVerbose = true;
184184
}
185185

0 commit comments

Comments
 (0)