1
0
silverbullet/webapp/boot.ts

45 lines
1.4 KiB
TypeScript
Raw Normal View History

import { Editor } from "./editor";
import { safeRun } from "./util";
2022-04-07 13:21:30 +00:00
import { Space } from "./spaces/space";
import { HttpSpacePrimitives } from "./spaces/http_space_primitives";
import { IndexedDBSpacePrimitives } from "./spaces/indexeddb_space_primitives";
import { SpaceSync } from "./spaces/sync";
2022-04-07 13:21:30 +00:00
let localSpace = new Space(new IndexedDBSpacePrimitives("pages"), true);
localSpace.watch();
2022-04-07 13:21:30 +00:00
let serverSpace = new Space(new HttpSpacePrimitives(""), true);
serverSpace.watch();
// @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!");
};
2022-04-07 13:21:30 +00:00
let editor = new Editor(serverSpace, document.getElementById("root")!);
safeRun(async () => {
await editor.init();
});
// @ts-ignore
window.editor = editor;
navigator.serviceWorker
.register(new URL("service_worker.ts", import.meta.url), { type: "module" })
.then((r) => {
2022-03-21 14:21:34 +00:00
// console.log("Service worker registered", r);
});