wip fix
This commit is contained in:
parent
83317ec5a0
commit
6c0bc1066e
|
|
@ -4,10 +4,11 @@ import { SAction } from "../actions";
|
|||
import { prepCode } from "../editor/code/prep-code";
|
||||
import { activity } from "../entity/activity";
|
||||
import { SyncConnection } from "../type";
|
||||
import { broadcastCode } from "../editor/code/build";
|
||||
|
||||
export const site_load: SAction["site"]["load"] = async function (
|
||||
this: SyncConnection,
|
||||
site_id: string,
|
||||
site_id: string
|
||||
) {
|
||||
if (validate(site_id)) {
|
||||
const site = await db.site.findFirst({ where: { id: site_id } });
|
||||
|
|
@ -31,6 +32,7 @@ export const site_load: SAction["site"]["load"] = async function (
|
|||
});
|
||||
|
||||
await prepCode(site_id, "site");
|
||||
broadcastCode(site_id, this.ws);
|
||||
|
||||
return {
|
||||
id: site.id,
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import { activity } from "../../entity/activity";
|
|||
import { sendWS } from "../../sync-handler";
|
||||
import { SyncType } from "../../type";
|
||||
import { gzipAsync } from "../../entity/zlib";
|
||||
import { ServerWebSocket } from "bun";
|
||||
import { WSData } from "../../../../../../pkgs/core/server/create";
|
||||
|
||||
const encoder = new TextEncoder();
|
||||
export const codeBuild = async (code: DBCode) => {
|
||||
|
|
@ -112,7 +114,10 @@ export const codeBuild = async (code: DBCode) => {
|
|||
|
||||
const code_id = {} as Record<string, { site: string; ssr: string }>;
|
||||
|
||||
export const broadcastCode = async (id_site: string) => {
|
||||
export const broadcastCode = async (
|
||||
id_site: string,
|
||||
ws?: ServerWebSocket<WSData>
|
||||
) => {
|
||||
if (!code_id[id_site]) {
|
||||
const res = await db.code.findMany({ where: { id_site } });
|
||||
if (res.length > 0) {
|
||||
|
|
@ -131,11 +136,26 @@ export const broadcastCode = async (id_site: string) => {
|
|||
const id_code = code_id[id_site].site;
|
||||
const outfile = dir.path(`${g.datadir}/site/build/${id_code}/index.js`);
|
||||
const out = Bun.file(outfile);
|
||||
if (out) {
|
||||
const src = (await out.text()).replace(
|
||||
"//# sourceMappingURL=index.js.map",
|
||||
`//# sourceMappingURL=/nova-load/code/${id_code}/index.js.map`
|
||||
);
|
||||
const srcgz = await gzipAsync(encoder.encode(src));
|
||||
|
||||
if (ws) {
|
||||
sendWS(ws, {
|
||||
type: SyncType.Event,
|
||||
event: "code",
|
||||
data: {
|
||||
name: "site",
|
||||
id: id_code,
|
||||
event: "code-done",
|
||||
src: srcgz,
|
||||
content: "OK",
|
||||
},
|
||||
});
|
||||
} else {
|
||||
activity.site
|
||||
.room(id_site)
|
||||
.findAll()
|
||||
|
|
@ -153,4 +173,6 @@ export const broadcastCode = async (id_site: string) => {
|
|||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue