diff options
Diffstat (limited to 'src/server/errHanadler.ts')
-rw-r--r-- | src/server/errHanadler.ts | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/src/server/errHanadler.ts b/src/server/errHanadler.ts deleted file mode 100644 index 84f9b26..0000000 --- a/src/server/errHanadler.ts +++ /dev/null @@ -1,85 +0,0 @@ -import Base from "./template/Base.js" -import createError from "http-errors" -import t, { c } from "./template/vdom.js" -import h from "./template/header.js" -import { STATUS_CODES } from "node:http" -import app from "./app.js" -import isDevel from "./utils/isDevel.js" -import isDefined from "./utils/isDefined.js" -import type express from "express" -import type { HttpError } from "http-errors" - -interface ErrObj { - code: number | string, - msg: string, - debug?: string | undefined -} - -async function errorTemplate(data: ErrObj): Promise<{ html: string; text: string; obj: ErrObj }> { - const { code, msg, debug } = data - const arg = { - ...data, - title: msg, - content() { - return [ - c(h, { level: 1, style: "color: darkred" }, `ERROR: ${code}`), - t("p", {}, msg), - isDefined(debug) && isDevel(app) ? t("p", {}, t("pre", {}, debug)) : "" - ] - } - } - return { - html: await Base(arg).render(), - text: `${code} - ${msg} -${debug || ""}`, - obj: data - } - -} - -async function errRender(res: express.Response, opt: ErrObj) { - const msg = await errorTemplate(opt) - res.format({ - html: () => { - res.send(msg.html) - }, - json: () => { - res.send(msg.obj) - }, - default: () => { - res.type("txt").send(msg.text) - } - }) -} - -export const errHandler = async function ( - err: HttpError, - _req: express.Request, - res: express.Response, - _next: express.NextFunction -) { - res.status(err.status || 500) - - await errRender(res, { - code: res.statusCode, - msg: res.statusMessage || STATUS_CODES[res.statusCode] || "Unknown", - debug: err.stack - }) - - console.error(err + (err.stack ?? "")) -} - -export function notFound(_req: express.Request, - _res: express.Response, - next: express.NextFunction -) { - next(createError(404)) -} - -export async function offline(_req: express.Request, - res: express.Response) { - await errRender(res, { - code: "Offline", - msg: "Can not reach the website. Check your Network", - }) -}
\ No newline at end of file |