A Node.js adapter for PawSQLite
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

47 lines
971 B

import sqlite3 from "sqlite3";
import { NodeAdapterError } from "./node_adapter_error.mjs";
import { QueryWrapper } from "./query_wrapper.mjs";
import { log } from "./log.mjs";
export class DatabaseWrapper {
constructor(dbName) {
this.dbName = dbName;
}
open() {
return new Promise((resolve, reject) => {
const db = new sqlite3.Database(
this.dbName,
sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE,
(err) => {
if (err) {
reject(NodeAdapterError.from(err));
return;
}
this.db = db;
resolve();
}
);
});
}
close() {
return new Promise((resolve, reject) => {
this.db.close((err) => {
if (err) {
reject(NodeAdapterError.from(err));
return;
}
resolve();
});
});
}
sql(sql, ...args) {
const query = new QueryWrapper(sql, ...args);
return query.execute(this.db);
}
}