41 lines
1.0 KiB
JavaScript
41 lines
1.0 KiB
JavaScript
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}`);
|
|
}
|
|
} |