import RxDB from "rxdb";
import { rxCollections } from "./rxCollections";
RxDB.plugin(require("pouchdb-adapter-idb"));
RxDB.plugin(require("pouchdb-adapter-http")); //enable syncing over http
let dbPromise = false;
const _create = async () => {
    const db = await RxDB.create({
        name: "bunadmin",
        adapter: "idb",
        password: "JUUFblX8pY9BeBs9RF68N7n",
        multiInstance: true,
        queryChangeDetection: false,
        ignoreDuplicate: true
    });
    console.log("DatabaseService: created database");
    // show flash icon in title
    db.waitForLeadership().then(() => {
        console.log("isLeader now");
        document.title = "⚡" + document.title;
    });
    // create collections
    await Promise.all(rxCollections.map(collObj => db.collection(collObj)));
    console.log("DatabaseService: create collections");
    return db;
};
export default function rxDb() {
    if (!dbPromise)
        dbPromise = _create();
    return dbPromise;
}
