A library for interacting with SQLite databases
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.
 

41 lines
1.0 KiB

import { Database } from "./database.mjs";
import { PawSQLiteError } from "./pawsqlite_error.mjs";
import { enableDebug } from "./log.mjs";
// Adapters
import { PSQLAdapter } from "./adapters/cordova_pawsqlite/psql_adapter.mjs";
import { WebSQLAdapter } from "./adapters/websql/websql_adapter.mjs";
export default {
open: async function(dbName, options = {}) {
const adapter = getAdapter(options.adapter);
let db = new Database(dbName, adapter);
await db.open();
return db;
},
delete: function(dbName, options = {}) {
const adapter = getAdapter(options.adapter);
return adapter.delete(dbName);
},
debug: enableDebug,
Error: PawSQLiteError
};
function getAdapter(adapterName) {
if (!adapterName) {
adapterName = "pawsqlite";
} else {
adapterName = adapterName.toLowerCase();
}
if (adapterName === "pawsqlite") {
return PSQLAdapter;
} else if (adapterName === "websql") {
return WebSQLAdapter;
} else {
throw new PawSQLiteError(`Unknown Adapter: ${adapterName}`);
}
}