feat: mount / unmount

This commit is contained in:
Nicolas Meienberger
2025-09-23 18:22:54 +02:00
parent 833bcb590f
commit f67152146d
17 changed files with 464 additions and 25 deletions

View File

@@ -1,4 +1,5 @@
import { ConflictError, NotFoundError } from "http-errors-enhanced";
import { logger } from "./logger";
export const handleServiceError = (error: unknown) => {
if (error instanceof ConflictError) {
@@ -9,6 +10,6 @@ export const handleServiceError = (error: unknown) => {
return { message: error.message, status: 404 as const };
}
console.error("Unhandled service error:", error);
logger.error("Unhandled service error:", error);
return { message: "Internal Server Error", status: 500 as const };
};

View File

@@ -0,0 +1,34 @@
import { createLogger, format, transports } from "winston";
const { printf, combine, colorize } = format;
const printConsole = printf((info) => `${info.level} > ${info.message}`);
const consoleFormat = combine(colorize(), printConsole);
const winstonLogger = createLogger({
level: "info",
format: format.json(),
transports: [new transports.Console({ level: "info", format: consoleFormat })],
});
const log = (level: "info" | "warn" | "error", messages: unknown[]) => {
const stringMessages = messages.flatMap((m) => {
if (m instanceof Error) {
return [m.message, m.stack];
}
if (typeof m === "object") {
return JSON.stringify(m, null, 2);
}
return m;
});
winstonLogger.log(level, stringMessages.join(" | "));
};
export const logger = {
info: (...messages: unknown[]) => log("info", messages),
warn: (...messages: unknown[]) => log("warn", messages),
error: (...messages: unknown[]) => log("error", messages),
};