From 806a40badcf50007cbc5f337ecffc8f86feb0088 Mon Sep 17 00:00:00 2001 From: Bruno Tot Date: Thu, 18 Apr 2024 12:53:07 +0200 Subject: [PATCH] chore: move route to separate decorators folder --- packages/backend/src/config/logger/logger.ts | 37 +++++++------------ packages/backend/src/decorators/GetMapping.ts | 4 +- .../backend/src/decorators/PostMapping.ts | 4 +- packages/backend/src/decorators/index.ts | 2 +- .../src/decorators/{ => route}/Route.ts | 21 +++-------- .../backend/src/decorators/route/index.ts | 0 pnpm-lock.yaml | 6 --- 7 files changed, 24 insertions(+), 50 deletions(-) rename packages/backend/src/decorators/{ => route}/Route.ts (73%) create mode 100644 packages/backend/src/decorators/route/index.ts diff --git a/packages/backend/src/config/logger/logger.ts b/packages/backend/src/config/logger/logger.ts index 0443c592..9ae1a4df 100644 --- a/packages/backend/src/config/logger/logger.ts +++ b/packages/backend/src/config/logger/logger.ts @@ -13,7 +13,7 @@ if (!existsSync(logDir)) { // Define log format const logFormat = winston.format.printf( - ({ timestamp, level, message }) => `${timestamp} ${level}: ${message}` + ({ timestamp, level, message }) => `${timestamp} ${level}: ${message}`, ); /* @@ -25,7 +25,7 @@ const logger = winston.createLogger({ winston.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss", }), - logFormat + logFormat, ), transports: [ // debug log setting @@ -54,11 +54,8 @@ const logger = winston.createLogger({ logger.add( new winston.transports.Console({ - format: winston.format.combine( - winston.format.splat(), - winston.format.colorize() - ), - }) + format: winston.format.combine(winston.format.splat(), winston.format.colorize()), + }), ); const stream = { @@ -74,12 +71,7 @@ type StartupLogProps = { kvSeparator?: string; }; -function startupLog({ - title, - data, - kvSeparator = " : ", - padding = 2, -}: StartupLogProps) { +function startupLog({ title, data, kvSeparator = " : ", padding = 2 }: StartupLogProps) { const center = (text: string, length: number) => { const remainingSpace = length - text.length; const leftBorderCount = Math.floor(remainingSpace / 2); @@ -93,27 +85,24 @@ function startupLog({ const hrY = kvSeparator; const keyValueLengths = Object.entries(data).map( - ([key, value]) => key.length + hrY.length + value.length + ([key, value]) => key.length + hrY.length + value.length, ); - const containerWidth = - Math.max(title.length, ...keyValueLengths) + padding * 2; - const maxKeyLength = Math.max(...Object.keys(data).map((key) => key.length)); + const containerWidth = Math.max(title.length, ...keyValueLengths) + padding * 2; + const maxKeyLength = Math.max(...Object.keys(data).map(key => key.length)); - const hrX = `${"-".repeat(containerWidth)}`; + const hrX = `${"─".repeat(containerWidth)}`; const content = Object.entries(data).map(([key, value]) => { const keyPadding = " ".repeat(maxKeyLength - key.length); const text = `${key}${keyPadding}${hrY}${value}`; - const remainder = " ".repeat( - containerWidth - text.length - spacer.length * 2 - ); - return `|${spacer}${text}${remainder}${spacer}|`; + const remainder = " ".repeat(containerWidth - text.length - spacer.length * 2); + return `│${spacer}${text}${remainder}${spacer}│`; }); logger.info(`┌${hrX}┐`); - logger.info(`|${center(title, containerWidth)}|`); + logger.info(`│${center(title, containerWidth)}│`); logger.info(`├${hrX}┤`); - content.forEach((text) => logger.info(text)); + content.forEach(text => logger.info(text)); logger.info(`└${hrX}┘`); } diff --git a/packages/backend/src/decorators/GetMapping.ts b/packages/backend/src/decorators/GetMapping.ts index 82dc6df5..b305a752 100644 --- a/packages/backend/src/decorators/GetMapping.ts +++ b/packages/backend/src/decorators/GetMapping.ts @@ -1,10 +1,10 @@ import { SwaggerPath } from "../config"; import { RouteHandler } from "../meta/RoutesMetaService"; -import { Route } from "./Route"; +import { Route } from "./route/Route"; export function GetMapping( path: string = "", - swagger?: SwaggerPath + swagger?: SwaggerPath, ) { return Route({ method: "get", diff --git a/packages/backend/src/decorators/PostMapping.ts b/packages/backend/src/decorators/PostMapping.ts index 54a11036..72af4a6a 100644 --- a/packages/backend/src/decorators/PostMapping.ts +++ b/packages/backend/src/decorators/PostMapping.ts @@ -1,10 +1,10 @@ import { SwaggerPath } from "../config"; import { RouteHandler } from "../meta/RoutesMetaService"; -import { Route } from "./Route"; +import { Route } from "./route/Route"; export function PostMapping( path: string = "", - swagger?: SwaggerPath + swagger?: SwaggerPath, ) { return Route({ method: "post", diff --git a/packages/backend/src/decorators/index.ts b/packages/backend/src/decorators/index.ts index 44ea200e..239595c6 100644 --- a/packages/backend/src/decorators/index.ts +++ b/packages/backend/src/decorators/index.ts @@ -3,6 +3,6 @@ export * from "./Controller"; export * from "./GetMapping"; export * from "./Injectable"; export * from "./PostMapping"; -export * from "./Route"; export * from "./Transactional"; export * from "./Use"; +export * from "./route/Route"; diff --git a/packages/backend/src/decorators/Route.ts b/packages/backend/src/decorators/route/Route.ts similarity index 73% rename from packages/backend/src/decorators/Route.ts rename to packages/backend/src/decorators/route/Route.ts index ea0ea27d..ebec02f5 100644 --- a/packages/backend/src/decorators/Route.ts +++ b/packages/backend/src/decorators/route/Route.ts @@ -1,25 +1,18 @@ import { createMethodDecorator } from "@tsvdec/decorators"; import { Request, Response } from "express"; -import { inject } from "../config"; -import { InjectionMetaService } from "../meta/InjectionMetaService"; -import { - RequestMappingProps, - RouteHandler, - RoutesMetaService, -} from "../meta/RoutesMetaService"; +import { inject } from "../../config"; +import { InjectionMetaService } from "../../meta/InjectionMetaService"; +import { RequestMappingProps, RouteHandler, RoutesMetaService } from "../../meta/RoutesMetaService"; // eslint-disable-next-line @typescript-eslint/no-unused-vars import { TODO } from "@org/shared"; import HttpStatus from "http-status"; -import { SwaggerPath } from "../config"; +import { SwaggerPath } from "../../config"; export type RouteProps = Omit & { swagger?: SwaggerPath; }; -export function Route({ - swagger = {}, - ...props -}: RouteProps) { +export function Route({ swagger = {}, ...props }: RouteProps) { return createMethodDecorator(({ target, meta }) => { const context = meta.context; //const name = String(context.name!); @@ -31,9 +24,7 @@ export function Route({ return await target.call(_this, req, res); } catch (error: TODO) { const message: string = error.message; - const [, ...stack] = error.stack - .split("\n") - .map((line: string) => line.trim()); + const [, ...stack] = error.stack.split("\n").map((line: string) => line.trim()); const response = { message, stack }; res.status(500).send(response); } diff --git a/packages/backend/src/decorators/route/index.ts b/packages/backend/src/decorators/route/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77df63fd..d07bd328 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -168,9 +168,6 @@ importers: '@tsvdec/decorators': specifier: ^1.0.7 version: 1.0.7 - '@zodyac/zod-mongoose': - specifier: ^1.1.2 - version: 1.1.2 bcrypt: specifier: ^5.1.1 version: 5.1.1 @@ -180,9 +177,6 @@ importers: express: specifier: ^4.18.2 version: 4.18.2 - http-status: - specifier: ^1.7.4 - version: 1.7.4 jsonwebtoken: specifier: ^9.0.2 version: 9.0.2