From 9e0c895c37eeb318b6ba899601d7c380a833ee2f Mon Sep 17 00:00:00 2001 From: Rizky Date: Sat, 16 Dec 2023 17:12:02 +0700 Subject: [PATCH] wip checkpoint --- .../{nova/vi => base}/load/db/client-db.tsx | 3 ++- app/web/src/base/page/ed.tsx | 13 ------------ app/web/src/index.tsx | 8 +++---- app/web/src/nova/ed/logic/ed-init.ts | 2 +- pkgs/core/server/create.ts | 21 +++++++++++++++---- pkgs/core/server/serve-ws.ts | 6 +++--- 6 files changed, 27 insertions(+), 26 deletions(-) rename app/web/src/{nova/vi => base}/load/db/client-db.tsx (96%) diff --git a/app/web/src/nova/vi/load/db/client-db.tsx b/app/web/src/base/load/db/client-db.tsx similarity index 96% rename from app/web/src/nova/vi/load/db/client-db.tsx rename to app/web/src/base/load/db/client-db.tsx index 003df0f1..8a89e5e6 100644 --- a/app/web/src/nova/vi/load/db/client-db.tsx +++ b/app/web/src/base/load/db/client-db.tsx @@ -1,7 +1,8 @@ import hash_sum from "hash-sum"; -import { fetchViaProxy } from "../proxy"; +import { fetchViaProxy } from "../../../nova/vi/load/proxy"; export const dbClient = (name: string, dburl: string) => { + console.log(dburl); return new Proxy( {}, { diff --git a/app/web/src/base/page/ed.tsx b/app/web/src/base/page/ed.tsx index 1ff436b8..dd2719d7 100644 --- a/app/web/src/base/page/ed.tsx +++ b/app/web/src/base/page/ed.tsx @@ -7,19 +7,6 @@ import { Loading } from "../../utils/ui/loading"; export default page({ url: "/ed/:site_id/:page_id", component: ({}) => { - console.log("momoka"); - setTimeout(() => { - (async () => { - console.log( - await fetch("/moka", { - method: "POST", - body: "{}", - }) - ); - })(); - }, 2000); - return <>uwuw; - const p = useGlobal(EDGlobal, "EDITOR"); const w = window as any; diff --git a/app/web/src/index.tsx b/app/web/src/index.tsx index 86fa3440..76438813 100644 --- a/app/web/src/index.tsx +++ b/app/web/src/index.tsx @@ -6,6 +6,7 @@ import { registerMobile } from "./render/live/logic/mobile"; import { reloadDBAPI } from "./utils/script/init-api"; import { w } from "./utils/types/general"; import { sworkerAddCache, sworkerRegister } from "./sworker-boot"; +import { dbClient } from "./base/load/db/client-db"; const start = async () => { const base = `${location.protocol}//${location.host}`; @@ -13,12 +14,11 @@ const start = async () => { root: null as null | ReactRoot, }; w.mobile = registerMobile(); - - // sworkerRegister(react); + w.db = dbClient("prasi", location.origin); + sworkerRegister(react); defineReact(); await defineWindow(false); - // await reloadDBAPI(base, "prod"); - // sworkerAddCache(base); + sworkerAddCache(base); const el = document.getElementById("root"); diff --git a/app/web/src/nova/ed/logic/ed-init.ts b/app/web/src/nova/ed/logic/ed-init.ts index f39c2c37..10093345 100644 --- a/app/web/src/nova/ed/logic/ed-init.ts +++ b/app/web/src/nova/ed/logic/ed-init.ts @@ -1,6 +1,6 @@ import init from "wasm-gzip"; import { jscript } from "../../../utils/script/jscript"; -import { dbClient } from "../../vi/load/db/client-db"; +import { dbClient } from "../../../base/load/db/client-db"; import { PG } from "./ed-global"; import { fetchViaProxy } from "../../vi/load/proxy"; diff --git a/pkgs/core/server/create.ts b/pkgs/core/server/create.ts index df8a3572..d5b50265 100644 --- a/pkgs/core/server/create.ts +++ b/pkgs/core/server/create.ts @@ -1,8 +1,7 @@ -import { createRouter } from "radix3"; import { g } from "../utils/global"; -import { serveWS } from "./serve-ws"; -import { serveStatic } from "./serve-static"; import { serveAPI } from "./serve-api"; +import { serveStatic } from "./serve-static"; +import { serveWS } from "./serve-ws"; export const cache = { static: {} as Record< @@ -20,15 +19,29 @@ export type WSData = { url: URL }; export const createServer = async () => { await serveAPI.init(); await serveStatic.init(); + const { wsHandler } = await import("../../../app/srv/ws/handler"); g.server = Bun.serve({ port: g.port, maxRequestBodySize: 9999999, development: true, - websocket: await serveWS(), + websocket: await serveWS(wsHandler), async fetch(req, server) { const url = new URL(req.url); + if (wsHandler[url.pathname]) { + if ( + server.upgrade(req, { + data: { + url: new URL(req.url), + }, + }) + ) { + return; + } + return new Response("Upgrade failed :(", { status: 500 }); + } + if (serveStatic.exists(url)) { return serveStatic.serve(url); } diff --git a/pkgs/core/server/serve-ws.ts b/pkgs/core/server/serve-ws.ts index 2c9a3c7b..8de6790c 100644 --- a/pkgs/core/server/serve-ws.ts +++ b/pkgs/core/server/serve-ws.ts @@ -1,9 +1,9 @@ import { WebSocketHandler } from "bun"; import { WSData } from "./create"; -export const serveWS: () => Promise> = async () => { - const { wsHandler } = await import("../../../app/srv/ws/handler"); - +export const serveWS: ( + wsHandler: Record> +) => Promise> = async (wsHandler) => { return { maxPayloadLength: 9999999, closeOnBackpressureLimit: true,