Skip to content

Commit a62d096

Browse files
authored
Merge pull request #51 from carlopi/fixexamples
Avoid throws in the callbacks
2 parents 6dd34ef + 4fa2046 commit a62d096

13 files changed

+86
-83
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Then you can run a query:
1515
```js
1616
db.all('SELECT 42 AS fortytwo', function(err, res) {
1717
if (err) {
18-
throw err;
18+
console.warn(err);
1919
}
2020
console.log(res[0].fortytwo)
2121
});
@@ -26,7 +26,7 @@ Other available methods are `each`, where the callback is invoked for each row,
2626
```js
2727
db.all('SELECT ?::INTEGER AS fortytwo, ?::STRING as hello', 42, 'Hello, World', function(err, res) {
2828
if (err) {
29-
throw err;
29+
console.warn(err);
3030
}
3131
console.log(res[0].fortytwo)
3232
console.log(res[0].hello)
@@ -47,7 +47,7 @@ You can create multiple connections, each with their own transaction context.
4747
```js
4848
con.all('SELECT 42 AS fortytwo', function(err, res) {
4949
if (err) {
50-
throw err;
50+
console.warn(err);
5151
}
5252
console.log(res[0].fortytwo)
5353
});
@@ -64,7 +64,7 @@ To execute this statement, you can call for example `all()` on the `stmt` object
6464
```js
6565
stmt.all(42, function(err, res) {
6666
if (err) {
67-
throw err;
67+
console.warn(err);
6868
}
6969
console.log(res[0].fortytwo)
7070
});
@@ -81,7 +81,7 @@ for (var i = 0; i < 10; i++) {
8181
stmt.finalize();
8282
con.all('SELECT * FROM a', function(err, res) {
8383
if (err) {
84-
throw err;
84+
console.warn(err);
8585
}
8686
console.log(res)
8787
});
@@ -93,7 +93,7 @@ con.all('SELECT * FROM a', function(err, res) {
9393
var stmt = con.prepare('select ?::INTEGER as fortytwo', function(err, stmt) {
9494
stmt.all(42, function(err, res) {
9595
if (err) {
96-
throw err;
96+
console.warn(err);
9797
}
9898
console.log(res[0].fortytwo)
9999
});

test/affected.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ describe('query properties', function() {
1313
var j = 1;
1414
for (var i = 0; i < 5000; i++) {
1515
stmt.run(i, "demo", function(err: null | Error) {
16-
if (err) throw err;
16+
if (err) done(new Error('Query failed unexpectedly'));
1717
// Relies on SQLite's row numbering to be gapless and starting
1818
// from 1.
1919
// @ts-ignore
@@ -26,7 +26,7 @@ describe('query properties', function() {
2626

2727
it.skip('should return the correct changes count', function(done) {
2828
db.run("UPDATE foo SET id = id + 1 WHERE id % 2 = 0", function(err: null | Error) {
29-
if (err) throw err;
29+
if (err) done(new Error('Query failed unexpectedly'));
3030
// FIXME assert.equal(2500, this.changes);
3131
done();
3232
});

test/columns.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ describe('Column Types', function() {
88
it('should prepare a statement and return the columns and their types', function(done) {
99
// we dont include the large_enum and small_enum since they are huge and test the same code path as the small_enum
1010
var stmt = db.prepare("SELECT * EXCLUDE(medium_enum, large_enum) FROM test_all_types()", function(err: null | Error) {
11-
if (err) throw err;
11+
if (err) done(new Error('Query failed unexpectedly'));
1212

1313
let cols = stmt.columns();
1414

@@ -263,4 +263,4 @@ describe('Column Types', function() {
263263
});
264264
stmt.finalize(done);
265265
});
266-
});
266+
});

test/config.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ describe('user_agent', () => {
99

1010
db.all('PRAGMA USER_AGENT', (err: null | Error, rows: TableData) => {
1111
if (err) {
12-
throw err;
12+
done(new Error('Query failed unexpectedly'));
1313
}
1414
assert.match(rows[0].user_agent, /duckdb\/.*\(*\) nodejs/);
1515
done();
@@ -21,7 +21,7 @@ describe('user_agent', () => {
2121

2222
db.all('PRAGMA USER_AGENT', (err: null | Error, rows: TableData) => {
2323
if (err) {
24-
throw err;
24+
done(new Error('Query failed unexpectedly'));
2525
}
2626
assert.match(rows[0].user_agent, /duckdb\/.*\(*\) nodejs a_framework/);
2727
done();

test/each.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ describe('each', function() {
1414

1515

1616
db.each('SELECT id, txt FROM foo WHERE ROWID < ?', total, function(err: null | Error, row: RowData) {
17-
if (err) throw err;
17+
if (err) done(new Error('Query failed unexpectedly'));
1818
retrieved++;
1919

2020
if(retrieved === total) {
@@ -29,7 +29,7 @@ describe('each', function() {
2929
var retrieved = 0;
3030

3131
db.each('SELECT id, txt FROM foo WHERE ROWID < ?', total, function(err: null | Error, row: RowData) {
32-
if (err) throw err;
32+
if (err) done(new Error('Query failed unexpectedly'));
3333
retrieved++;
3434
}, function(err: null | Error, num: RowData) {
3535
assert.equal(retrieved, num);

test/exec.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ describe('exec', function() {
1212
it('Database#exec', function(done) {
1313
var sql = fs.readFileSync('test/support/script.sql', 'utf8');
1414
db.exec(sql, function(err: null | Error) {
15-
if (err) throw err;
15+
if (err) done(new Error('Query failed unexpectedly'));
1616
done();
1717
});
1818
});
1919

2020
it('retrieve database structure', function(done) {
2121
db.all("SELECT type, name FROM sqlite_master ORDER BY type, name", function(err: null | Error, rows: TableData) {
22-
if (err) throw err;
22+
if (err) done(new Error('Query failed unexpectedly'));
2323
assert.deepEqual(rows, [
2424
// { type: 'index', name: 'grid_key_lookup' },
2525
// { type: 'index', name: 'grid_utfgrid_lookup' },

test/named_columns.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ describe.skip('named columns', function() {
2121

2222
it('should retrieve the values', function(done) {
2323
db.get("SELECT txt, num FROM foo ORDER BY num", function(err, row) {
24-
if (err) throw err;
24+
if (err) done(new Error('Query failed unexpectedly'));
2525
assert.equal(row.txt, "Lorem Ipsum");
2626
assert.equal(row.num, 1);
2727
done();
@@ -30,7 +30,7 @@ describe.skip('named columns', function() {
3030

3131
it('should be able to retrieve rowid of last inserted value', function(done) {
3232
db.get("SELECT last_insert_rowid() as last_id FROM foo", function(err, row) {
33-
if (err) throw err;
33+
if (err) done(new Error('Query failed unexpectedly'));
3434
assert.equal(row.last_id, 1);
3535
done();
3636
});

test/null_error.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ describe('null error', function() {
1717

1818
it('should insert rows with lots of null values', function(done) {
1919
var stmt = db.prepare('INSERT INTO febp_data VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', function(err: null | Error) {
20-
if (err) throw err;
20+
if (err) done(new Error('Query failed unexpectedly'));
2121

2222
for (var i = 0; i < 100; i++) {
2323
stmt.run([ '100005', 'Albertville City School District', 'ALABAMA', 'AL', '1', '856031', '753000', 'NULL', 'NULL', '6-Small Town', 'Town', 21, '130', '6624', '7140', '8731', '8520', '102', '88', '100', '94', '23352000', '27280000', '30106000', '33028000', '768478', '845886', '782696', '1096819', '1279663', '1168521', '561522', '657649', '684366', '687531', '710543', '727276', '726647', 'N/A', 'N/A', 'N/A', 'N/A', '986', '977', '1006', '1080250', '1202325', '1009962', '1109310', '70287', '93015', '14693.56', '13634.58', 'N/A', '0.230', '0.301', '0.268882175', '73', '26', '29', '3718', '3747', '3790', '2663', '2615', '2575', '75', '82', '89', '3', '2', '6', '11', '9', '8', '955', '1028', '1102', '1991', '2061', '2146', '649', '729', '770', '443', '278', '267', '0.860', '0.86', '0.8474', '0.84', '0.8235', '0.810', '0.84', '0.7729', '0.75', '0.7843', '1121', '1205', '0.74', '0.6862', '0.72', '0.7317', '0.78', '0.7766', '0.79', '0.7387', '0.84', '0.9255', '0.86', '0.9302', '0.88', '0.9308', '0.84', '0.8605' ]);
2424
}
2525

2626
stmt.finalize(function(err) {
27-
if (err) throw err;
27+
if (err) done(new Error('Query failed unexpectedly'));
2828
done();
2929
});
3030
});

test/prepare.test.ts

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ describe('prepare', function() {
1414
err.message === 'Parser: syntax error at or near "CRATE' */) {
1515
done();
1616
}
17-
else throw err;
17+
else {
18+
done(new Error('Query failed unexpectedly'));
19+
}
1820
});
1921
});
2022

@@ -56,24 +58,24 @@ describe('prepare', function() {
5658
i * Math.PI,
5759
null,
5860
function(err: null | Error) {
59-
if (err) throw err;
61+
if (err) done(new Error('Query failed unexpectedly'));
6062
inserted++;
6163
}
6264
).finalize(function(err) {
63-
if (err) throw err;
65+
if (err) done(new Error('Query failed unexpectedly'));
6466
if (inserted == count) done();
6567
});
6668
}
6769
});
6870

6971
it('should prepare a statement and return values again', function(done) {
7072
var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err: null | Error) {
71-
if (err) throw err;
73+
if (err) done(new Error('Query failed unexpectedly'));
7274
assert.equal(stmt.sql, 'SELECT txt, num, flt, blb FROM foo ORDER BY num');
7375
});
7476

7577
stmt.each(function(err: null | Error, row: RowData) {
76-
if (err) throw err;
78+
if (err) done(new Error('Query failed unexpectedly'));
7779
assert.equal(row.txt, 'String ' + retrieved);
7880
assert.equal(row.num, retrieved);
7981
assert.equal(row.flt, retrieved * Math.PI);
@@ -93,13 +95,13 @@ describe('prepare', function() {
9395
/* // get() is an abomination and should be killed
9496
it('should prepare a statement and run it ' + (count + 5) + ' times', function(done) {
9597
var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err) {
96-
if (err) throw err;
98+
if (err) done(new Error('Query failed unexpectedly'));
9799
assert.equal(stmt.sql, 'SELECT txt, num, flt, blb FROM foo ORDER BY num');
98100
});
99101
100102
for (var i = 0; i < count + 5; i++) (function(i) {
101103
stmt.get(function(err, row) {
102-
if (err) throw err;
104+
if (err) done(new Error('Query failed unexpectedly'));
103105
104106
if (retrieved >= 1000) {
105107
assert.equal(row, undefined);
@@ -138,7 +140,7 @@ describe('prepare', function() {
138140

139141
it('should insert two rows', function(done) {
140142
db.prepare('INSERT INTO foo VALUES(4)').run(function(err: null | Error) {
141-
if (err) throw err;
143+
if (err) done(new Error('Query failed unexpectedly'));
142144
inserted++;
143145
}).run(undefined, function (err: null | Error) {
144146
// The second time we pass undefined as a parameter. This is
@@ -149,20 +151,20 @@ describe('prepare', function() {
149151
};
150152
inserted++;
151153
}).finalize(function(err) {
152-
if (err) throw err;
154+
if (err) done(new Error('Query failed unexpectedly'));
153155
if (inserted == 2) done();
154156
});
155157
});
156158

157159
/*
158160
it('should retrieve the data', function(done) {
159161
var stmt = db.prepare("SELECT num FROM foo", function(err) {
160-
if (err) throw err;
162+
if (err) done(new Error('Query failed unexpectedly'));
161163
});
162164
163165
for (var i = 0; i < 2; i++) (function(i) {
164166
stmt.get(function(err, row) {
165-
if (err) throw err;
167+
if (err) done(new Error('Query failed unexpectedly'));
166168
assert(row);
167169
assert.equal(row.num, 4);
168170
retrieved++;
@@ -175,11 +177,11 @@ describe('prepare', function() {
175177

176178
it('should retrieve the data', function(done) {
177179
var stmt = db.prepare("SELECT num FROM foo", function(err: null | Error) {
178-
if (err) throw err;
180+
if (err) done(new Error('Query failed unexpectedly'));
179181
});
180182

181183
stmt.each(function(err: null | Error, row: RowData) {
182-
if (err) throw err;
184+
if (err) done(new Error('Query failed unexpectedly'));
183185
assert.ok(row);
184186
assert.equal(row.num, 4);
185187
retrieved++;
@@ -211,7 +213,7 @@ describe('prepare', function() {
211213
for (var i = 0; i < 10; i++) {
212214
stmt.reset();
213215
stmt.get(function(err, row) {
214-
if (err) throw err;
216+
if (err) done(new Error('Query failed unexpectedly'));
215217
assert.equal(row.txt, 'String 0');
216218
assert.equal(row.num, 0);
217219
assert.equal(row.flt, 0.0);
@@ -245,7 +247,7 @@ describe('prepare', function() {
245247
246248
for (var i = 0; i < 10; i++) (function(i) {
247249
stmt.get(i * 10 + 1, function(err, row) {
248-
if (err) throw err;
250+
if (err) done(new Error('Query failed unexpectedly'));
249251
var val = i * 10 + 1;
250252
assert.equal(row.txt, 'String ' + val);
251253
assert.equal(row.num, val);
@@ -279,7 +281,7 @@ describe('prepare', function() {
279281
/* it('should retrieve particular rows', function(done) {
280282
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10')
281283
.get(function(err, row) {
282-
if (err) throw err;
284+
if (err) done(new Error('Query failed unexpectedly'));
283285
assert.equal(row.txt, 'String 10');
284286
assert.equal(row.num, 10);
285287
assert.equal(row.flt, 10 * Math.PI);
@@ -292,7 +294,7 @@ describe('prepare', function() {
292294
it('should retrieve particular rows', function(done) {
293295
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?")
294296
.each(10, 'String 10', function(err: null | Error, row: RowData) {
295-
if (err) throw err;
297+
if (err) done(new Error('Query failed unexpectedly'));
296298
assert.equal(row.txt, 'String 10');
297299
assert.equal(row.num, 10);
298300
// assert.equal(row.flt, 10 * Math.PI);
@@ -323,7 +325,7 @@ describe('prepare', function() {
323325
it('should retrieve particular rows', function(done) {
324326
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num < ? ORDER BY num")
325327
.all(count, function(err: null | Error, rows: TableData) {
326-
if (err) throw err;
328+
if (err) done(new Error('Query failed unexpectedly'));
327329
for (var i = 0; i < rows.length; i++) {
328330
assert.equal(rows[i].txt, 'String ' + i);
329331
assert.equal(rows[i].num, i);
@@ -353,7 +355,7 @@ describe('prepare', function() {
353355
it('should directly execute first statements', function(done) {
354356
db.prepare("insert into foo values (3); insert into foo values (4); select * from foo")
355357
.all(function(err: null | Error, rows: TableData) {
356-
if (err) throw err;
358+
if (err) done(new Error('Query failed unexpectedly'));
357359
assert.equal(rows[0].a, 3);
358360
assert.equal(rows[1].a, 4);
359361
})
@@ -392,7 +394,7 @@ describe('prepare', function() {
392394
it('should retrieve particular rows', function(done) {
393395
db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num > 5000")
394396
.all(function(err: null | Error, rows: TableData) {
395-
if (err) throw err;
397+
if (err) done(new Error('Query failed unexpectedly'));
396398
assert.ok(rows.length === 0);
397399
})
398400
.finalize(done);
@@ -435,10 +437,10 @@ describe('prepare', function() {
435437
for (var i = 0; i < data.length; i++) {
436438
var stmt = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)");
437439
stmt.run(data[i][0], data[i][1], data[i][2], data[i][3], function(err: null | Error) {
438-
if (err) throw err;
440+
if (err) done(new Error('Query failed unexpectedly'));
439441
inserted++;
440442
}).finalize(function(err) {
441-
if (err) throw err;
443+
if (err) done(new Error('Query failed unexpectedly'));
442444
if (inserted == data.length) done();
443445
});
444446
}
@@ -447,7 +449,7 @@ describe('prepare', function() {
447449
it('should retrieve all values', function(done) {
448450
db.prepare("SELECT txt, num, flt, blb FROM foo")
449451
.all(function(err: null | Error, rows: TableData) {
450-
if (err) throw err;
452+
if (err) done(new Error('Query failed unexpectedly'));
451453

452454
for (var i = 0; i < rows.length; i++) {
453455
assert.ok(retrieved_marks[rows[i].num] !== true);
@@ -485,7 +487,7 @@ describe('prepare', function() {
485487
486488
it('should get a row', function(done) {
487489
db.get("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10', function(err, row) {
488-
if (err) throw err;
490+
if (err) done(new Error('Query failed unexpectedly'));
489491
assert.equal(row.txt, 'String 10');
490492
assert.equal(row.num, 10);
491493
assert.equal(row.flt, 10 * Math.PI);
@@ -524,7 +526,7 @@ describe('prepare', function() {
524526
i * Math.PI,
525527
null,
526528
function(err: null | Error) {
527-
if (err) throw err;
529+
if (err) done(new Error('Query failed unexpectedly'));
528530
inserted++;
529531
if (inserted == count) done();
530532
}
@@ -534,7 +536,7 @@ describe('prepare', function() {
534536

535537
it('should retrieve all rows', function(done) {
536538
db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err: null | Error, rows: TableData) {
537-
if (err) throw err;
539+
if (err) done(new Error('Query failed unexpectedly'));
538540
for (var i = 0; i < rows.length; i++) {
539541
assert.equal(rows[i].txt, 'String ' + i);
540542
assert.equal(rows[i].num, i);

0 commit comments

Comments
 (0)