mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* sqlite3-promise type definitions * Update index.d.ts * incorporating uniqueiniquity improvements
77 lines
2.0 KiB
TypeScript
77 lines
2.0 KiB
TypeScript
import * as sqlite3 from 'sqlite3-promise';
|
|
|
|
runExamples();
|
|
|
|
function createDb(): sqlite3.Database {
|
|
return new sqlite3.Database(
|
|
':memory:', sqlite3.OPEN_CREATE | sqlite3.OPEN_READWRITE);
|
|
}
|
|
|
|
async function runExamples() {
|
|
// Wraps all, get, and run
|
|
let db = createDb();
|
|
let query = 'CREATE TABLE rows (str TEXT, num INT)';
|
|
await db.runAsync(query);
|
|
|
|
query = 'INSERT INTO rows (str, num) VALUES (\'foo\', 11), (\'bar\', 19)';
|
|
await db.runAsync(query);
|
|
|
|
query = 'SELECT rowid, * FROM rows';
|
|
let result = await db.allAsync(query);
|
|
// expect(result.length).toBe(2);
|
|
|
|
query = 'SELECT str FROM rows WHERE num=19';
|
|
result = await db.allAsync(query);
|
|
// expect(result).toEqual([{str: 'bar'}]);
|
|
|
|
query = 'SELECT str FROM rows WHERE num=19';
|
|
const singleResult = await db.getAsync(query);
|
|
// expect(singleResult).toEqual({str: 'bar'});
|
|
|
|
await db.closeAsync();
|
|
|
|
// Wraps each
|
|
db = createDb();
|
|
db.serialize(() => {
|
|
db.run("CREATE TABLE lorem (info TEXT)");
|
|
const stmt = db.prepare("INSERT INTO lorem VALUES (?)");
|
|
for (let i = 0; i < 10; i++) {
|
|
stmt.run("Ipsum " + i);
|
|
}
|
|
stmt.finalize();
|
|
});
|
|
|
|
let sum = 0;
|
|
const eachResult = await db.eachAsync(
|
|
"SELECT rowid AS id, info FROM lorem",
|
|
(err, row) => { sum += row.id; });
|
|
// expect(result).toBe(10);
|
|
// expect(sum).toBe(55);
|
|
await db.closeAsync();
|
|
|
|
// Wraps exec
|
|
db = createDb();
|
|
query = `CREATE TABLE lorem (info TEXT);
|
|
INSERT INTO lorem VALUES ('foo')`;
|
|
const statement = await db.execAsync(query);
|
|
|
|
query = 'SELECT str FROM rows WHERE num=19';
|
|
result = await db.allAsync(query);
|
|
// expect(result).toEqual([{str: 'bar'}]);
|
|
await db.closeAsync();
|
|
|
|
// Wraps verbose
|
|
const verbose = sqlite3.verbose();
|
|
db = new verbose.Database(
|
|
':memory:', verbose.OPEN_CREATE | verbose.OPEN_READWRITE);
|
|
query = `CREATE TABLE rows (str TEXT, num INT);
|
|
INSERT INTO rows (str, num) VALUES ('foo', 11), ('bar', 19)`;
|
|
await db.execAsync(query);
|
|
|
|
query = 'SELECT str FROM rows WHERE num=19';
|
|
result = await db.allAsync(query);
|
|
// expect(result).toEqual([{str: 'bar'}]);
|
|
|
|
await db.closeAsync();
|
|
}
|