wip fix
This commit is contained in:
parent
8e24d40a0f
commit
1514dffd4c
|
|
@ -3,6 +3,7 @@ import { apiContext } from "service-srv";
|
||||||
import { validate } from "uuid";
|
import { validate } from "uuid";
|
||||||
import { code } from "../ws/sync/editor/code/util-code";
|
import { code } from "../ws/sync/editor/code/util-code";
|
||||||
import { gzipAsync } from "../ws/sync/entity/zlib";
|
import { gzipAsync } from "../ws/sync/entity/zlib";
|
||||||
|
import { prodIndex } from "../util/prod-index";
|
||||||
|
|
||||||
export const _ = {
|
export const _ = {
|
||||||
url: "/prod/:site_id/**",
|
url: "/prod/:site_id/**",
|
||||||
|
|
@ -12,26 +13,9 @@ export const _ = {
|
||||||
const pathname: string = req.params["*"] || "";
|
const pathname: string = req.params["*"] || "";
|
||||||
const site_id = req.params.site_id as string;
|
const site_id = req.params.site_id as string;
|
||||||
|
|
||||||
const index_html = new Response(
|
const index_html = new Response(prodIndex(site_id).render(), {
|
||||||
`\
|
headers: { "content-type": "text/html" },
|
||||||
<!DOCTYPE html>
|
});
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=1.0, minimum-scale=1.0, maximum-scale=1.0">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" href="https://prasi.app/index.css">
|
|
||||||
</head>
|
|
||||||
<body class="flex-col flex-1 w-full min-h-screen flex opacity-0">
|
|
||||||
<div id="root"></div>
|
|
||||||
<script>
|
|
||||||
window._prasi={basepath: "/prod/${site_id}",site_id:"${site_id}"}
|
|
||||||
</script>
|
|
||||||
<script src="/prod/${site_id}/main.js" type="module"></script>
|
|
||||||
</body>
|
|
||||||
</html>`,
|
|
||||||
{ headers: { "content-type": "text/html" } }
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!validate(site_id))
|
if (!validate(site_id))
|
||||||
return new Response("site not found", { status: 403 });
|
return new Response("site not found", { status: 403 });
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
export const prodIndex = (site_id: string) => {
|
||||||
|
return {
|
||||||
|
head: [] as string[],
|
||||||
|
body: [] as string[],
|
||||||
|
render() {
|
||||||
|
return `\
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width, initial-scale=1.0, user-scalable=1.0, minimum-scale=1.0, maximum-scale=1.0">
|
||||||
|
<link rel="stylesheet" href="/index.css">
|
||||||
|
${this.head.join("\n")}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="flex-col flex-1 w-full min-h-screen flex opacity-0">
|
||||||
|
${this.body.join("\n")}
|
||||||
|
<div id="root"></div>
|
||||||
|
<script>
|
||||||
|
window._prasi = { basepath: "/prod/${site_id}", site_id: "${site_id}" }
|
||||||
|
</script>
|
||||||
|
<script src="/prod/${site_id}/main.js" type="module"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>`;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
@ -123,7 +123,9 @@ declare global {
|
||||||
url: URL;
|
url: URL;
|
||||||
req: Request;
|
req: Request;
|
||||||
server: Server;
|
server: Server;
|
||||||
|
mode: "dev" | "prod";
|
||||||
handle: (req: Request) => Promise<Response>;
|
handle: (req: Request) => Promise<Response>;
|
||||||
|
index: { head: string[]; body: string[]; render: () => string };
|
||||||
}) => Promise<Response>;
|
}) => Promise<Response>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ export const codeBuild = async (id_site: any) => {
|
||||||
import type {} from "./typings/global";
|
import type {} from "./typings/global";
|
||||||
|
|
||||||
export const server: PrasiServer = {
|
export const server: PrasiServer = {
|
||||||
async http({ req, handle, url, server }) {
|
async http({ req, handle, mode, url, index, server }) {
|
||||||
return await handle(req);
|
return await handle(req);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import { waitUntil } from "web-utils";
|
||||||
import { code } from "./util-code";
|
import { code } from "./util-code";
|
||||||
import { WSData } from "../../../../../../pkgs/core/server/create";
|
import { WSData } from "../../../../../../pkgs/core/server/create";
|
||||||
import { codeBuild } from "./build-code";
|
import { codeBuild } from "./build-code";
|
||||||
|
import { prodIndex } from "../../../../util/prod-index";
|
||||||
|
|
||||||
const serverMain = () => ({
|
const serverMain = () => ({
|
||||||
handler: {} as Record<string, PrasiServer>,
|
handler: {} as Record<string, PrasiServer>,
|
||||||
|
|
@ -85,7 +86,11 @@ const serverMain = () => ({
|
||||||
return new Response("Upgrade failed :(", { status: 500 });
|
return new Response("Upgrade failed :(", { status: 500 });
|
||||||
}
|
}
|
||||||
|
|
||||||
return await handler.http(arg);
|
return await handler.http({
|
||||||
|
...arg,
|
||||||
|
mode: "dev",
|
||||||
|
index: prodIndex(site_id),
|
||||||
|
});
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
_fs.appendFile(
|
_fs.appendFile(
|
||||||
code.path(site_id, "site", "src", "server.log"),
|
code.path(site_id, "site", "src", "server.log"),
|
||||||
|
|
@ -103,6 +108,8 @@ type PrasiServer = {
|
||||||
req: Request;
|
req: Request;
|
||||||
server: Server;
|
server: Server;
|
||||||
handle: (req: Request) => Promise<undefined | Response>;
|
handle: (req: Request) => Promise<undefined | Response>;
|
||||||
|
mode: "dev" | "prod";
|
||||||
|
index: { head: string[]; body: string[]; render: () => string };
|
||||||
}) => Promise<Response>;
|
}) => Promise<Response>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ export const EdApiServer = forwardRef<
|
||||||
server.status = "saving";
|
server.status = "saving";
|
||||||
p.render();
|
p.render();
|
||||||
p.site.config.api_url = trim(local.api_url, "/");
|
p.site.config.api_url = trim(local.api_url, "/");
|
||||||
await p.sync.site.update(p.site.id, {
|
await p.sync?.site.update(p.site.id, {
|
||||||
config: { api_url: local.api_url },
|
config: { api_url: local.api_url },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -254,7 +254,6 @@ export const EdApiServer = forwardRef<
|
||||||
)}
|
)}
|
||||||
{local.deployable && (
|
{local.deployable && (
|
||||||
<>
|
<>
|
||||||
<EdApiDomain domains={local.domains} />
|
|
||||||
<EdApiDeploy deploy={local.deploy} />
|
<EdApiDeploy deploy={local.deploy} />
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue