response-standardizer 1.2.3 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Request, Response } from "express";
2
- import { RestResponseFunctions, RestMiddlewareFunctions } from "./types";
2
+ import { RestResponseFunctions, RestMiddlewareFunctions, ServiceResponse } from "./types";
3
3
  declare global {
4
4
  namespace Express {
5
5
  interface Response {
@@ -24,6 +24,7 @@ export declare const warn: (message: string, meta?: any) => void;
24
24
  export declare const info: (message: string, meta?: any) => void;
25
25
  export declare const log: (level: "INFO" | "WARN" | "ERROR", message: string, meta?: any) => void;
26
26
  export declare const handleRestException: (req: Request, res: Response, err: Error) => void;
27
+ export declare const handleRestResponse: (req: Request, res: Response, response: ServiceResponse) => void;
27
28
  export declare const handleValidationException: (error: any) => never;
28
29
  export declare class ServiceException extends Error {
29
30
  status: number;
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ServiceException = exports.handleValidationException = exports.handleRestException = exports.log = exports.info = exports.warn = exports.error = exports.RestMiddleware = exports.RestResponse = exports.protect = exports.initKeycloak = void 0;
6
+ exports.ServiceException = exports.handleValidationException = exports.handleRestResponse = exports.handleRestException = exports.log = exports.info = exports.warn = exports.error = exports.RestMiddleware = exports.RestResponse = exports.protect = exports.initKeycloak = void 0;
7
7
  const utils_1 = require("./utils");
8
8
  const axios_1 = __importDefault(require("axios"));
9
9
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
@@ -201,6 +201,27 @@ const handleRestException = (req, res, err) => {
201
201
  }
202
202
  };
203
203
  exports.handleRestException = handleRestException;
204
+ const handleRestResponse = (req, res, response) => {
205
+ if (response && response?.code) {
206
+ if (response?.code === 401) {
207
+ exports.RestResponse.unauthorized(req, res, response?.message);
208
+ }
209
+ else if (response?.code === 403) {
210
+ exports.RestResponse.accessDenied(req, res, response?.message);
211
+ }
212
+ else if (response?.code === 400) {
213
+ exports.RestResponse.validationError(req, res, response?.errors);
214
+ }
215
+ else if (response?.code === 500) {
216
+ exports.RestResponse.exceptionError(req, res, response.message);
217
+ }
218
+ else if (response?.code === 404) {
219
+ exports.RestResponse.notFound(req, res, response.message);
220
+ }
221
+ exports.RestResponse.exceptionError(req, res, response.message);
222
+ }
223
+ };
224
+ exports.handleRestResponse = handleRestResponse;
204
225
  const handleValidationException = (error) => {
205
226
  const zodError = error;
206
227
  if (zodError.issues) {
package/dist/types.d.ts CHANGED
@@ -18,6 +18,11 @@ export interface Pagination<T> {
18
18
  data: T[];
19
19
  meta: PaginationMeta;
20
20
  }
21
+ export interface ServiceResponse {
22
+ code: number;
23
+ message: string;
24
+ errors?: ErrorFields;
25
+ }
21
26
  export type ErrorFields = Record<string, string[]>;
22
27
  export type Middleware = (req: Request, res: Response, next: NextFunction) => void;
23
28
  export interface RestMiddlewareFunctions {
@@ -28,7 +33,7 @@ export interface RestResponseFunctions {
28
33
  paginate: <T>(req: Request, res: Response, data: Pagination<T>) => void;
29
34
  created: <T>(req: Request, res: Response, data: T) => void;
30
35
  deleted: (req: Request, res: Response) => void;
31
- validationError: (req: Request, res: Response, errors: ErrorFields, message?: string) => void;
36
+ validationError: (req: Request, res: Response, errors?: ErrorFields, message?: string) => void;
32
37
  exceptionError: (req: Request, res: Response, errors: any, message?: string) => void;
33
38
  unauthorized: (req: Request, res: Response, message?: string) => void;
34
39
  accessDenied: (req: Request, res: Response, message?: string) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "response-standardizer",
3
- "version": "1.2.3",
3
+ "version": "1.2.5",
4
4
  "description": "Express middleware to standardize API responses",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Request, Response, NextFunction } from "express";
2
- import { ErrorFields, StandardResponse, RestResponseFunctions, RestMiddlewareFunctions, AuthRequest, Pagination } from "./types";
2
+ import { ErrorFields, StandardResponse, RestResponseFunctions, RestMiddlewareFunctions, AuthRequest, Pagination, ServiceResponse } from "./types";
3
3
  import { generateRequestId, getTimestamp } from "./utils";
4
4
  import axios from "axios";
5
5
  import jwt, { TokenExpiredError } from "jsonwebtoken";
@@ -95,7 +95,7 @@ const deleted = (req: Request, res: Response) => {
95
95
  const validationError = (
96
96
  req: Request,
97
97
  res: Response,
98
- errors: ErrorFields,
98
+ errors?: ErrorFields,
99
99
  message = "Validation error"
100
100
  ) => {
101
101
  res.status(400).json({ errors, message });
@@ -246,6 +246,23 @@ export const handleRestException = (req: Request, res: Response, err: Error) =>
246
246
  }
247
247
  }
248
248
 
249
+ export const handleRestResponse = (req: Request, res: Response, response: ServiceResponse) => {
250
+ if(response && response?.code){
251
+ if(response?.code === 401){
252
+ RestResponse.unauthorized(req, res, response?.message)
253
+ }else if(response?.code === 403){
254
+ RestResponse.accessDenied(req, res, response?.message)
255
+ }else if(response?.code === 400){
256
+ RestResponse.validationError(req, res, response?.errors)
257
+ }else if(response?.code === 500){
258
+ RestResponse.exceptionError(req, res, response.message)
259
+ }else if(response?.code === 404){
260
+ RestResponse.notFound(req, res, response.message)
261
+ }
262
+ RestResponse.exceptionError(req, res, response.message)
263
+ }
264
+ }
265
+
249
266
  export const handleValidationException = (error: any) => {
250
267
  const zodError = error as ZodError;
251
268
  if (zodError.issues) {
package/src/types.ts CHANGED
@@ -20,6 +20,12 @@ export interface Pagination<T>{
20
20
  meta: PaginationMeta
21
21
  }
22
22
 
23
+ export interface ServiceResponse {
24
+ code: number;
25
+ message: string;
26
+ errors?: ErrorFields;
27
+ }
28
+
23
29
  export type ErrorFields = Record<string, string[]>;
24
30
 
25
31
  export type Middleware = (req: Request, res: Response, next: NextFunction) => void;
@@ -39,7 +45,7 @@ export interface RestResponseFunctions {
39
45
  validationError: (
40
46
  req: Request,
41
47
  res: Response,
42
- errors: ErrorFields,
48
+ errors?: ErrorFields,
43
49
  message?: string
44
50
  ) => void;
45
51
  exceptionError: (