machinomy
Version:
Micropayments powered by Ethereum
45 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const sqlite = require("sqlite3");
const SqliteDatastore_1 = require("./SqliteDatastore");
let db = new Map();
class EngineSqlite {
constructor(url) {
if (url.startsWith('sqlite://')) {
url = url.replace('sqlite://', '');
}
let found = db.get(url);
if (found) {
this.datastore = found;
}
else {
this.datastore = new SqliteDatastore_1.default(new sqlite.Database(url));
db.set(url, this.datastore);
}
}
isConnected() {
return true;
}
async connect() {
return Promise.resolve();
}
async close() {
return this.exec(async (client) => {
return client.close();
});
}
async drop() {
return this.exec(async (client) => {
let row = await client.get('PRAGMA database_list');
if (row && row.file && row.file.length > 0) {
fs.unlinkSync(row.file);
}
});
}
async exec(fn) {
return fn(this.datastore);
}
}
exports.default = EngineSqlite;
//# sourceMappingURL=EngineSqlite.js.map