45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { Root as ReactRoot, createRoot } from "react-dom/client";
|
|
import { defineReact, defineWindow } from "web-utils";
|
|
import { apiProxy } from "./base/load/api/api-proxy";
|
|
import { loadApiProxyDef } from "./base/load/api/api-proxy-def";
|
|
import { dbProxy } from "./base/load/db/db-proxy";
|
|
import { Root } from "./base/root";
|
|
import "./index.css";
|
|
import { registerMobile } from "./render/live/logic/mobile";
|
|
import { sworkerAddCache, sworkerRegister } from "./sworker-boot";
|
|
import { w } from "./utils/types/general";
|
|
|
|
const start = async () => {
|
|
let react = {
|
|
root: null as null | ReactRoot,
|
|
};
|
|
w.mobile = registerMobile();
|
|
|
|
const cur = new URL(w.basehost || location.href);
|
|
const base_url = `${cur.protocol}//${cur.host}`;
|
|
w._db = dbProxy(base_url);
|
|
|
|
try {
|
|
await loadApiProxyDef(base_url, false);
|
|
w._api = apiProxy(base_url);
|
|
} catch (e) {
|
|
console.warn("Failed to load API:", base_url);
|
|
}
|
|
|
|
w.serverurl = base_url;
|
|
|
|
sworkerRegister(react);
|
|
defineReact();
|
|
await defineWindow(false);
|
|
sworkerAddCache(base_url);
|
|
|
|
const el = document.getElementById("root");
|
|
|
|
if (el) {
|
|
react.root = createRoot(el);
|
|
react.root.render(<Root />);
|
|
}
|
|
};
|
|
|
|
start();
|