silverbullet/web/boot.ts

68 lines
1.8 KiB
TypeScript
Raw Normal View History

2022-10-03 23:36:21 +08:00
import { Editor } from "./editor.tsx";
import { parseYamlSettings, safeRun } from "../common/util.ts";
import { Space } from "../common/spaces/space.ts";
import { HttpSpacePrimitives } from "../common/spaces/http_space_primitives.ts";
2022-04-30 00:54:27 +08:00
safeRun(async () => {
2022-10-06 17:31:49 +08:00
let password: string | undefined = localStorage.getItem("password") ||
undefined;
2022-06-28 20:14:15 +08:00
let httpPrimitives = new HttpSpacePrimitives("", password);
2022-08-02 18:43:39 +08:00
let settingsPageText = "";
2022-10-07 20:13:55 +08:00
while (true) {
try {
settingsPageText = (
await httpPrimitives.readFile("SETTINGS.md", "string")
).data as string;
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);
}
}
}
2022-09-12 20:50:37 +08:00
let serverSpace = new Space(httpPrimitives);
2022-04-30 00:54:27 +08:00
serverSpace.watch();
2022-04-26 01:46:08 +08:00
2022-04-30 00:54:27 +08:00
console.log("Booting...");
2022-08-02 18:43:39 +08:00
let settings = parseYamlSettings(settingsPageText);
let editor = new Editor(
serverSpace,
document.getElementById("sb-root")!,
"",
2022-10-06 17:31:49 +08:00
settings.indexPage || "index",
2022-08-02 18:43:39 +08:00
);
await editor.init();
2022-04-30 00:54:27 +08:00
// @ts-ignore
window.editor = editor;
});
2022-04-26 01:46:08 +08:00
// if (!isDesktop) {
2022-10-06 17:31:49 +08:00
// 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)",
// );
// }
// } else {
// console.log("Service worker disabled via disable_sw");
// }
2022-04-26 01:46:08 +08:00
// }