From 645f6d17396ca3ac6f0dbeca24cd0ed083c251a0 Mon Sep 17 00:00:00 2001 From: Rizky Date: Sat, 17 Feb 2024 20:15:53 +0700 Subject: [PATCH] wip fix --- bun.lockb | Bin 128071 -> 127730 bytes pkgs/server/create.ts | 32 +++++++++++++++++++++++--------- pkgs/utils/global.ts | 5 ++++- pkgs/utils/prisma.ts | 2 +- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/bun.lockb b/bun.lockb index 38c3991f3faa687b5b918f74550186f11f4575a7..ddbf6dab532715f04739503682544252bf81508b 100755 GIT binary patch delta 6195 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 A761SM delta 6313 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 z { await scan(dir(`app/srv/api`)); await scan(dir(`pkgs/api`)); + g.createServer = (arg) => { + return async (site_id: string) => { + return arg; + }; + }; + g.server = Bun.serve({ port: g.port, async fetch(req) { @@ -121,18 +127,26 @@ export const createServer = async () => { ) { const res = require(dir(`app/web/server/index.js`)); if (res && res.server) { - g.deploy.server = res.server; + if (typeof res.server === "function") { + g.deploy.server = await res.server(); + } else { + g.deploy.server = res.server; + } } } if (g.deploy.server && g.deploy.index) { - return await g.deploy.server.http({ - handle, - mode: "prod", - req, - server: g.server, - url: { pathname: url.pathname, raw: url }, - index: g.deploy.index, - }); + try { + return await g.deploy.server.http({ + handle, + mode: "prod", + req, + server: g.server, + url: { pathname: url.pathname, raw: url }, + index: g.deploy.index, + }); + } catch (e) { + console.error(e); + } } } diff --git a/pkgs/utils/global.ts b/pkgs/utils/global.ts index 585c854..3591edc 100644 --- a/pkgs/utils/global.ts +++ b/pkgs/utils/global.ts @@ -20,7 +20,7 @@ export type SinglePage = { name: true; content_tree: any; is_default_layout: true; -} +}; type PrasiServer = { ws?: WebSocketHandler<{ url: string }>; @@ -64,6 +64,9 @@ export const g = global as unknown as { br: Record; br_timeout: Set; }; + createServer: ( + arg: PrasiServer & { api: any; db: any } + ) => (site_id: string) => Promise; deploy: { init: boolean; raw: any; diff --git a/pkgs/utils/prisma.ts b/pkgs/utils/prisma.ts index 5d9dc8c..effa592 100644 --- a/pkgs/utils/prisma.ts +++ b/pkgs/utils/prisma.ts @@ -4,7 +4,7 @@ import { $ } from "execa"; import { g } from "./global"; export const preparePrisma = async () => { - if (await existsAsync(dir("app/db/.env"))) { + if ((await existsAsync(dir("app/db/.env"))) && !g.db) { if (g.mode !== "dev") { await $({ cwd: dir(`app/db`) })`bun prisma db pull`; await $({ cwd: dir(`app/db`) })`bun prisma generate`;