Updated from sqlite to sqlite3 now all functions are async so we wait for response.
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const sqlite = require('sqlite');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
class SqliteDatabase {
|
||||
|
||||
constructor(host) {
|
||||
this.host = host;
|
||||
this.connection = sqlite;
|
||||
this.connection = this.connect()
|
||||
this.schemaDirectory = path.join(__dirname, 'schemas');
|
||||
}
|
||||
|
||||
@@ -14,10 +14,12 @@ class SqliteDatabase {
|
||||
* Connect to the database.
|
||||
* @returns {Promise} succeeds if connection was established
|
||||
*/
|
||||
connect() {
|
||||
async connect() {
|
||||
return Promise.resolve()
|
||||
.then(() => sqlite.open(this.host))
|
||||
.then(() => sqlite.exec('pragma foreign_keys = on;'));
|
||||
.then(() => {
|
||||
this.connection = new sqlite3.Database(this.host);
|
||||
this.connection.run('PRAGMA foreign_keys=on')
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -27,7 +29,13 @@ class SqliteDatabase {
|
||||
* @returns {Promise}
|
||||
*/
|
||||
run(sql, parameters) {
|
||||
return this.connection.run(sql, parameters);
|
||||
return new Promise((resolve, reject) => {
|
||||
this.connection.run(sql, parameters, (error, result) => {
|
||||
if (error)
|
||||
reject(error);
|
||||
resolve(result)
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -36,8 +44,15 @@ class SqliteDatabase {
|
||||
* @param {Array} parameters in the SQL query
|
||||
* @returns {Promise}
|
||||
*/
|
||||
all(sql, parameters) {
|
||||
return this.connection.all(sql, parameters);
|
||||
async all(sql, parameters) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.connection.all(sql, parameters, (err, rows) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
resolve(rows);
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -46,8 +61,16 @@ class SqliteDatabase {
|
||||
* @param {Array} parameters in the SQL query
|
||||
* @returns {Promise}
|
||||
*/
|
||||
get(sql, parameters) {
|
||||
return this.connection.get(sql, parameters);
|
||||
async get(sql, parameters) {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.connection.get(sql, parameters, (err, rows) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
console.log('rows', rows)
|
||||
resolve(rows);
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -56,8 +79,10 @@ class SqliteDatabase {
|
||||
* @param {Array} parameters in the SQL query
|
||||
* @returns {Promise}
|
||||
*/
|
||||
execute(sql) {
|
||||
return this.connection.exec(sql);
|
||||
async execute(sql) {
|
||||
return new Promise(resolve => {
|
||||
resolve(this.connection.exec(sql));
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user