sitegen/framework/backend/entry-node.ts

43 lines
867 B
TypeScript
Raw Normal View History

2025-07-07 20:58:02 -07:00
import "@paperclover/console/inject";
import "#debug";
2025-07-09 22:34:07 -07:00
const app = require(globalThis.CLOVER_SERVER_ENTRY ?? process.argv[2]);
2025-07-07 20:58:02 -07:00
const protocol = "http";
const server = serve({
2025-07-09 23:45:21 -07:00
fetch: app.default.fetch,
2025-07-09 23:22:46 -07:00
port: Number(process.env.PORT ?? 3000),
2025-07-07 20:58:02 -07:00
}, ({ address, port }) => {
2025-08-14 20:35:33 -07:00
if (address === "::") address = "localhost";
2025-07-07 20:58:02 -07:00
console.info(url.format({
protocol,
hostname: address,
port,
}));
});
process.on("SIGINT", () => {
server.close();
process.exit(0);
});
process.on("SIGTERM", () => {
server.close((err) => {
if (err) {
console.error(err);
process.exit(1);
}
process.exit(0);
});
});
2025-07-09 22:34:07 -07:00
declare global {
/* Control via --define:globalThis.CLOVER_SERVER_ENTRY="..." */
var CLOVER_SERVER_ENTRY: string;
}
2025-07-07 20:58:02 -07:00
import url from "node:url";
import { serve } from "@hono/node-server";
import process from "node:process";