File size: 2,148 Bytes
2108cc1 55d4e9d 2108cc1 154498a 2108cc1 698de32 154498a 2108cc1 154498a 2108cc1 55d4e9d 2108cc1 55d4e9d 2108cc1 55d4e9d 2108cc1 5251a0f 2108cc1 99ff94d 2108cc1 1d9bccd 55d4e9d 2108cc1 698de32 f968842 eae7a98 8423100 5251a0f 154498a 5251a0f 2108cc1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | 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}`
);
|