30 lines
741 B
JavaScript
30 lines
741 B
JavaScript
import PouchDB from 'pouchdb';
|
|
|
|
export function getLegalDBName(input) {
|
|
return encodeURIComponent(input.toLowerCase())
|
|
.replace(/\./g, '%2E')
|
|
.replace(/!/g, '%21')
|
|
.replace(/~/g, '%7E')
|
|
.replace(/\*/g, '%2A')
|
|
.replace(/'/g, '%27')
|
|
.replace(/\(/g, '%28')
|
|
.replace(/\)/g, '%29')
|
|
.replace(/\-/g, '%2D')
|
|
.toLowerCase()
|
|
.replace(/(%..)/g, esc => `(${esc.substr(1)})`);
|
|
}
|
|
|
|
export function getDbUrl(db) {
|
|
if (db.user) {
|
|
return `${db.protocol}${encodeURIComponent(db.user)}:${encodeURIComponent(db.password)}@${db.host}`;
|
|
} else {
|
|
return `${db.protocol}${db.host}`;
|
|
}
|
|
}
|
|
|
|
const dbs = {};
|
|
export function getDb(dbUrl) {
|
|
if (!dbs[dbUrl]) dbs[dbUrl] = new PouchDB(dbUrl);
|
|
return dbs[dbUrl];
|
|
}
|