import { Editor } from "./editor"; import { safeRun } from "@silverbulletmd/common/util"; import { Space } from "@silverbulletmd/common/spaces/space"; import { HttpSpacePrimitives } from "@silverbulletmd/common/spaces/http_space_primitives"; safeRun(async () => { // let localSpace = new Space(new IndexedDBSpacePrimitives("pages"), true); // localSpace.watch(); let password: string | undefined = localStorage.getItem("password") || undefined; let httpPrimitives = new HttpSpacePrimitives("", password); while (true) { try { await httpPrimitives.getPageMeta("index"); break; } catch (e: any) { if (e.message === "Unauthorized") { password = prompt("Password: ") || undefined; if (!password) { alert("Sorry, need a password"); return; } localStorage.setItem("password", password!); httpPrimitives = new HttpSpacePrimitives("", password); } } } let serverSpace = new Space(httpPrimitives, true); serverSpace.watch(); console.log("Booting..."); // // @ts-ignore // window.syncer = async () => { // let lastLocalSync = +(localStorage.getItem("lastLocalSync") || "0"), // lastRemoteSync = +(localStorage.getItem("lastRemoteSync") || "0"); // let syncer = new SpaceSync( // serverSpace, // localSpace, // lastRemoteSync, // lastLocalSync, // "_trash/" // ); // await syncer.syncPages( // SpaceSync.primaryConflictResolver(serverSpace, localSpace) // ); // localStorage.setItem("lastLocalSync", "" + syncer.secondaryLastSync); // localStorage.setItem("lastRemoteSync", "" + syncer.primaryLastSync); // console.log("Done!"); // }; let editor = new Editor(serverSpace, document.getElementById("root")!); await editor.init(); // @ts-ignore window.editor = editor; }); // if (!isDesktop) { if (localStorage.getItem("disable_sw") !== "true") { if (navigator.serviceWorker) { navigator.serviceWorker .register(new URL("service_worker.ts", import.meta.url), { type: "module", }) .then((r) => { console.log("Service worker registered..."); }); } else { console.log( "No launching service worker (not present, maybe because not running on localhost or over SSL)" ); } } // }