create-types-backend
Version:
A CLI tool to quickly setup an Express.js backend in TypeScript, using essential configurations and user's preferences.
41 lines (35 loc) • 1.13 kB
JavaScript
export const errorHandlerContent = `import type { Request, Response, NextFunction } from "express";
export class ErrorHandler extends Error {
constructor(public statusCode: number, public message: string) {
super(message);
this.statusCode = statusCode;
}
}
export const errorHandler = (
err: ErrorHandler,
_req: Request,
res: Response,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
_next: NextFunction
) => {
err.statusCode ||= 500;
err.message ||= "Internal Server Error";
console.log(err);
return res.status(err.statusCode).json({ message: err.message });
};
`;
export const tryCatchContent = `import type { Request, Response, NextFunction } from "express";
type ControllerTypes = (
req: Request,
res: Response,
next: NextFunction
) => Promise<void | Response<unknown, Record<string, unknown>>>;
export const tryCatch = (controller: ControllerTypes) => {
return async (req: Request, res: Response, next: NextFunction) => {
try {
await controller(req, res, next);
} catch (error) {
next(error);
}
};
};`;