Skip to content

Commit

Permalink
chore: move route to separate decorators folder
Browse files Browse the repository at this point in the history
  • Loading branch information
brunotot committed Apr 18, 2024
1 parent 4c69a4c commit 806a40b
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 50 deletions.
37 changes: 13 additions & 24 deletions packages/backend/src/config/logger/logger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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}`,
);

/*
Expand All @@ -25,7 +25,7 @@ const logger = winston.createLogger({
winston.format.timestamp({
format: "YYYY-MM-DD HH:mm:ss",
}),
logFormat
logFormat,
),
transports: [
// debug log setting
Expand Down Expand Up @@ -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 = {
Expand All @@ -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);
Expand All @@ -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}┘`);
}

Expand Down
4 changes: 2 additions & 2 deletions packages/backend/src/decorators/GetMapping.ts
Original file line number Diff line number Diff line change
@@ -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<This, Fn extends RouteHandler>(
path: string = "",
swagger?: SwaggerPath
swagger?: SwaggerPath,
) {
return Route<This, Fn>({
method: "get",
Expand Down
4 changes: 2 additions & 2 deletions packages/backend/src/decorators/PostMapping.ts
Original file line number Diff line number Diff line change
@@ -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<This, Fn extends RouteHandler>(
path: string = "",
swagger?: SwaggerPath
swagger?: SwaggerPath,
) {
return Route<This, Fn>({
method: "post",
Expand Down
2 changes: 1 addition & 1 deletion packages/backend/src/decorators/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Original file line number Diff line number Diff line change
@@ -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<RequestMappingProps, "name" | "middlewares"> & {
swagger?: SwaggerPath;
};

export function Route<This, Fn extends RouteHandler>({
swagger = {},
...props
}: RouteProps) {
export function Route<This, Fn extends RouteHandler>({ swagger = {}, ...props }: RouteProps) {
return createMethodDecorator<This, Fn>(({ target, meta }) => {
const context = meta.context;
//const name = String(context.name!);
Expand All @@ -31,9 +24,7 @@ export function Route<This, Fn extends RouteHandler>({
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);
}
Expand Down
Empty file.
6 changes: 0 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 806a40b

Please sign in to comment.