fix main server.js

This commit is contained in:
Rizky 2024-07-05 05:41:58 +07:00
parent b28b0462ff
commit 72e4c71d61
4 changed files with 86 additions and 73 deletions

File diff suppressed because one or more lines are too long

View File

@ -29,7 +29,8 @@ export const initServer = async (
} }
code.internal.server[id_site] = { code.internal.server[id_site] = {
rebuilding: false, ts: 0, rebuilding: false,
ts: 0,
ctx: await context({ ctx: await context({
absWorkingDir: dir.data(root), absWorkingDir: dir.data(root),
entryPoints: ["server.ts"], entryPoints: ["server.ts"],
@ -50,22 +51,22 @@ export const initServer = async (
// ], // ],
banner: { banner: {
js: `\ js: `\
const _fs = require('node:fs/promises'); const _fs = require('node:fs/promises');
const console = const console =
typeof global.server_hook === "function" typeof global.server_hook === "function"
? { ...global.console } ? { ...global.console }
: global.console; : global.console;
let db = new Proxy({}, { let db = new Proxy({}, {
get(_, key) { get(_, key) {
const runtime = global.server_runtime["${id_site}"]; const runtime = global.server_runtime["${id_site}"];
if (runtime && runtime.db) { if (runtime && runtime.db) {
return runtime.db[key]; return runtime.db[key];
} }
} }
}); });
let api = {}; let api = {};
if (typeof global.server_hook === "function") { if (typeof global.server_hook === "function") {
const log = global.console.log; const log = global.console.log;
console.log = function (...arg) { console.log = function (...arg) {
const out = "${code.path(id_site, "site", "src", "server.log")}"; const out = "${code.path(id_site, "site", "src", "server.log")}";
@ -99,18 +100,19 @@ export const initServer = async (
return e; return e;
}).join(" ") + "\\n"); }).join(" ") + "\\n");
}.bind(console); }.bind(console);
} else { } else {
db = global.db; db = global.db;
api = global.api; api = global.api;
}`, }
`,
}, },
}) }),
}; };
code.internal.server[id_site].rebuilding = true; code.internal.server[id_site].rebuilding = true;
try { try {
await code.internal.server[id_site].ctx.rebuild(); await code.internal.server[id_site].ctx.rebuild();
await server.init(id_site); await server.init(id_site);
} catch (e) { } } catch (e) {}
code.internal.server[id_site].rebuilding = false; code.internal.server[id_site].rebuilding = false;
}; };

View File

@ -57,13 +57,14 @@ const serverMain = () => ({
this.handler[site_id] = svr.server; this.handler[site_id] = svr.server;
svr.server.site_id = site_id; svr.server.site_id = site_id;
if (typeof svr.server.init === "function") {
await svr.server.init({});
}
Bun.write( Bun.write(
Bun.file(code.path(site_id, "site", "src", "server.log")), Bun.file(code.path(site_id, "site", "src", "server.log")),
"" ""
); );
if (typeof svr.server.init === "function") {
await svr.server.init({});
}
} else { } else {
const file = await Bun.file(server_src_path).text(); const file = await Bun.file(server_src_path).text();
const log_path = code.path(site_id, "site", "src", "server.log"); const log_path = code.path(site_id, "site", "src", "server.log");

View File

@ -175,9 +175,14 @@ export const fetchSendDb = async (params: any, dburl: string) => {
let result = await cachedQueryResult[hsum].promise; let result = await cachedQueryResult[hsum].promise;
cached = cachedQueryResult[hsum]; cached = cachedQueryResult[hsum];
try { try {
if (typeof result === "string") {
result = JSON.parse(result); result = JSON.parse(result);
cachedQueryResult[hsum].result = result; cachedQueryResult[hsum].result = result;
return result; return result;
} else {
cachedQueryResult[hsum].result = result;
return result;
}
} catch (e) { } catch (e) {
console.error("DBQuery failed:", result); console.error("DBQuery failed:", result);
} }
@ -188,7 +193,12 @@ export const fetchSendDb = async (params: any, dburl: string) => {
let result = await cached.promise; let result = await cached.promise;
if (result) { if (result) {
try { try {
return JSON.parse(result); if (typeof result === "string") {
result = JSON.parse(result);
return result;
} else {
return result;
}
} catch (e) { } catch (e) {
console.error("DBQuery failed:", result); console.error("DBQuery failed:", result);
} }