import { Elysia, Context, t } from "elysia"; import { logger } from "@chneau/elysia-logger"; import { cors } from "@elysiajs/cors"; import { NS_Misc } from "../../../../packages/lib/helpers/client/misc"; import { NS_error } from "../../../../packages/lib/helpers/client/error"; import { NS_routes_elysia } from "../../../../packages/lib/helpers/server/routes-elysia"; import { HonoRouter } from "./sub-router/hono.index"; import { NS_runtime } from "../../../../packages/lib/env.runtime"; await NS_runtime.set_env_var_db(); const APP_ENV = process.env.APP_ENV; const APP_ORIGIN = process.env.APP_ORIGIN; const PORT = process.env.PORT; const app = new Elysia() .use( cors({ origin: "*", allowedHeaders: "*", methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS", "HEAD"], exposeHeaders: "*" }) ) .derive((ctx: any) => ({ publicOrigin: NS_routes_elysia.F_public_origin(ctx) })) .use(logger()) .onError(async ({ code, error }) => { let e_message = ""; if (code === "VALIDATION") { e_message = error.message; try { e_message = JSON.parse(e_message).summary; } catch (err) {} } const err_d = NS_error.F_collect_error_status_n_message({ ERR: error }); NS_Misc.console.error({ ENV: "dev", _browser: false, _log: ["\n"] }); NS_Misc.console.error({ ENV: "dev", _browser: false, _log: [{ code, e_message, ...err_d }, "\n"] }); return new Response(err_d.message, { status: err_d.status, headers: { "x-error-message": JSON.stringify(err_d.message), "x-error-status": err_d.status } }); }) .mount("/", HonoRouter.fetch) .get("/", () => { return "🦊 Hello Rafiki 🍿"; }) .get("/foo", (ctx: Context) => { const REQ_headers = ctx?.request?.headers; console.log("\n", "REQ_headers", REQ_headers, "\n"); return "🦊 Hello Rafiki 🍿"; }) .listen({ port: PORT || 7860, ...(NS_runtime.IS_PROD && { hostname: "0.0.0.0" }), idleTimeout: 120 }); console.log( `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}` );