blob: 2bfbff8214f0a1dfb632c35a8f057242ef2a31f5 [file] [log] [blame]
'use strict';
var cachedDatabases = new Map();
// openDatabase passed in through opts (e.g. for node-websql)
function openDatabaseWithOpts(opts) {
return opts.websql(opts.name, opts.version, opts.description, opts.size);
}
function openDBSafely(opts) {
try {
return {
db: openDatabaseWithOpts(opts)
};
} catch (err) {
return {
error: err
};
}
}
function openDB(opts) {
var cachedResult = cachedDatabases.get(opts.name);
if (!cachedResult) {
cachedResult = openDBSafely(opts);
cachedDatabases.set(opts.name, cachedResult);
}
return cachedResult;
}
export default openDB;