This commit is contained in:
Derock 2023-10-04 11:36:33 -04:00
parent 096117b6b3
commit d87b6a08d3
No known key found for this signature in database

View file

@ -1,65 +1,61 @@
import { IncomingMessage, ServerResponse } from "http"; import { IncomingMessage, ServerResponse } from "http";
import { app, type ElysiaAPI as EAPI } from "./api"; import { app, type ElysiaAPI as EAPI } from "./api";
export type ElysiaAPI = EAPI; export type ElysiaAPI = EAPI;
import Elysia from "elysia";
import { prepDatabase } from "./database/migrate"; import { prepDatabase } from "./database/migrate";
import { env } from "./env"; import { env } from "./env";
import next from "next"; import next from "next";
// import { createServer } from "http";
// if this is the main module, start the server prepDatabase();
if (import.meta.main) {
prepDatabase();
// create and register next.js // create and register next.js
const nextApp = next({ const nextApp = next({
dev: env.dev, dev: env.dev,
hostname: env.host, hostname: env.host,
port: env.port, port: env.port,
}); });
await nextApp.prepare(); await nextApp.prepare();
const handle = nextApp.getRequestHandler(); const handle = nextApp.getRequestHandler();
const upgradeHandle = nextApp.getUpgradeHandler();
/** /**
* Handles a request from Bun and returns a response * Handles a request from Bun and returns a response
* @param req standard Bun request * @param req standard Bun request
* @returns standard Bun response * @returns standard Bun response
*/ */
const handleBun = (req: Request) => { const handleBun = (req: Request) => {
return new Promise<Response>((resolve) => { return new Promise<Response>((resolve) => {
const start = Date.now(); const start = Date.now();
// @ts-ignore
const http_req = new IncomingMessage(req);
const http_res = new ServerResponse({
// @ts-ignore // @ts-ignore
const http_req = new IncomingMessage(req); reply: (response) => {
const http_res = new ServerResponse({ resolve(response);
// @ts-ignore console.log("🛬 response took " + (Date.now() - start) + "ms");
reply: (response) => { },
resolve(response);
console.log("🛬 response took " + (Date.now() - start) + "ms");
},
req: http_req, req: http_req,
});
console.log("📦 Rendering page: " + req.url);
handle(http_req, http_res);
}); });
};
app.onRequest(async (ctx) => { console.log("📦 Rendering page: " + req.url);
return await handleBun(ctx.request).catch((err) => { handle(http_req, http_res);
console.log(err);
});
}); });
};
app.listen( app.onRequest(async (ctx) => {
{ return await handleBun(ctx.request).catch((err) => {
port: env.port, console.log(err);
hostname: env.host, });
}, });
(data) => {
console.log(`🚀 listening on ${data.hostname}:${data.port}`); app.listen(
} {
); port: env.port,
} hostname: env.host,
},
(data) => {
console.log(`🚀 listening on ${data.hostname}:${data.port}`);
}
);