Personal no-bs blogging platform.
Something went wrong. Try again.
1.1 kB · 28 lines
TypeScript
at master
12345678910111213141516171819202122232425262728import { createMiddleware } from "hono/factory";import * as errorMap from "@/lib/errors";import * as messageMap from "@/lib/messages";import type { StatusCode } from "hono/utils/http-status";
type ErrorKey = keyof typeof errorMap;type MessageKey = keyof typeof messageMap;
export const params_middleware = createMiddleware(async (c, next) => { const errorParam = c.req.query("error"); const messageParam = c.req.query("message");
if (errorParam && errorParam in errorMap) { const ErrorClass = errorMap[errorParam as ErrorKey]; const instance = new ErrorClass(); c.set("error", instance.message); if (instance.statusCode) { c.status(instance.statusCode as StatusCode) } } else if (errorParam && !(errorParam in errorMap)) c.set("error", "Unknown error. Might be an issue on our end.");
if (messageParam && messageParam in messageMap) { const message = messageMap[messageParam as MessageKey]; c.set("message", message.message); }
await next();});