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
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}`); |
|
} |
|
} |