fix
This commit is contained in:
parent
5f04228147
commit
abfc1a5f81
|
|
@ -13,6 +13,7 @@ export const initServer = async (
|
|||
if (existing) {
|
||||
if (force) {
|
||||
existing.rebuilding = false;
|
||||
await existing.ctx.cancel();
|
||||
await existing.ctx.dispose();
|
||||
} else {
|
||||
return;
|
||||
|
|
@ -29,7 +30,8 @@ export const initServer = async (
|
|||
}
|
||||
|
||||
code.internal.server[id_site] = {
|
||||
rebuilding: false,
|
||||
inputs: new Set(),
|
||||
rebuilding: true,
|
||||
ts: 0,
|
||||
ctx: await context({
|
||||
absWorkingDir: dir.data(root),
|
||||
|
|
@ -37,6 +39,7 @@ export const initServer = async (
|
|||
bundle: true,
|
||||
outfile: build_file,
|
||||
platform: "node",
|
||||
metafile: true,
|
||||
treeShaking: true,
|
||||
format: "cjs",
|
||||
logLevel: "silent",
|
||||
|
|
@ -45,9 +48,22 @@ export const initServer = async (
|
|||
name: "prasi",
|
||||
setup(build) {
|
||||
build.onEnd((e) => {
|
||||
code.internal.server[id_site].rebuilding = false;
|
||||
if (e.errors.length === 0) {
|
||||
code.internal.server[id_site].inputs = new Set(
|
||||
Object.keys(e.metafile?.inputs || {})
|
||||
);
|
||||
server.init(id_site);
|
||||
}
|
||||
console.log(
|
||||
`\
|
||||
site server rebuild ${id_site} ${
|
||||
e.errors.length > 0
|
||||
? `
|
||||
- e.errors.map((e) => e.text).join("\n - ")`
|
||||
: ""
|
||||
}`
|
||||
);
|
||||
});
|
||||
},
|
||||
},
|
||||
|
|
@ -111,6 +127,5 @@ if (typeof global.server_hook === "function") {
|
|||
},
|
||||
}),
|
||||
};
|
||||
|
||||
code.internal.server[id_site].ctx.watch();
|
||||
await code.internal.server[id_site].ctx.rebuild();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,7 +14,12 @@ export const codeInternal = {
|
|||
if (!g.prasi_code.server) g.prasi_code.server = {};
|
||||
return g.prasi_code.server as Record<
|
||||
SITE_ID,
|
||||
{ rebuilding: boolean; ts: number; ctx: BuildContext }
|
||||
{
|
||||
rebuilding: boolean;
|
||||
ts: number;
|
||||
ctx: BuildContext;
|
||||
inputs: Set<string>;
|
||||
}
|
||||
>;
|
||||
},
|
||||
get frontend() {
|
||||
|
|
|
|||
|
|
@ -43,6 +43,18 @@ export class Watcher {
|
|||
ipc(message, childProc) {
|
||||
console.log(id_site, message);
|
||||
const fe = code.internal.frontend[id_site];
|
||||
const sv = code.internal.server[id_site];
|
||||
if (sv && !sv.rebuilding) {
|
||||
if (
|
||||
Array.isArray(message) &&
|
||||
typeof message[1] === "string" &&
|
||||
sv.inputs.has(message[1])
|
||||
) {
|
||||
sv.rebuilding = true;
|
||||
sv.ctx.rebuild();
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (typeof fe !== "undefined" && !fe.rebuilding) {
|
||||
fe.rebuilding = true;
|
||||
clearTimeout(fe.timeout);
|
||||
|
|
|
|||
Loading…
Reference in New Issue