SIAP / src /index.ts
GUI-STUDIO
Initialize runtime env vars and improve media processing
698de32
Raw
History Blame Contribute Delete
2.15 kB
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}`
);