response-standardizer 1.1.0 → 1.1.2

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.js CHANGED
@@ -51,24 +51,23 @@ const role = (req, res, next, allowedRoles) => {
51
51
  }
52
52
  next();
53
53
  };
54
- const success = (req, res, data, message = null) => {
55
- res.status(200).json({ data, message });
54
+ const success = (req, res, data) => {
55
+ res.status(200).json(data);
56
56
  };
57
- const paginate = (req, res, data, pagination, message = null) => {
58
- res.status(200).json({ data, message, pagination });
57
+ const paginate = (req, res, data) => {
58
+ res.status(200).json(data);
59
59
  };
60
- const created = (req, res, data, message = "Record created successfully") => {
61
- res.status(201).json({ data, message });
60
+ const created = (req, res, data) => {
61
+ res.status(201).json(data);
62
62
  };
63
63
  const deleted = (req, res) => {
64
64
  res.status(204).send();
65
65
  };
66
66
  const validationError = (req, res, errors, message = "Validation error") => {
67
- res.status(400).json({ errors, message, data: null });
67
+ res.status(400).json({ errors, message });
68
68
  };
69
69
  const exceptionError = (req, res, errors, message = "Internal server error") => {
70
70
  res.status(500).json({
71
- data: null,
72
71
  message,
73
72
  errors
74
73
  });
@@ -93,19 +92,19 @@ const responseHandlerMiddleware = (req, res, next) => {
93
92
  const oldJson = res.json.bind(res);
94
93
  const oldSend = res.send.bind(res);
95
94
  res.json = function (data) {
96
- const response = {
97
- status: res.statusCode >= 200 && res.statusCode < 300 ? "success" : "error",
98
- code: res.statusCode,
99
- message: data?.message || res.locals.message || (res.statusCode < 300 ? "OK" : "Error"),
100
- data: data?.data ?? null,
101
- errors: data?.errors ?? null,
102
- meta: {
103
- requestId: res.locals.requestId || generateRequestId(),
104
- timestamp: getTimestamp(),
105
- pagination: data?.pagination ?? null
106
- }
107
- };
108
- return oldJson(response);
95
+ if (res.statusCode > 204) {
96
+ const response = {
97
+ code: res.statusCode,
98
+ message: data?.message || res.locals.message || (res.statusCode < 300 ? "OK" : "Error"),
99
+ errors: data?.errors ?? null,
100
+ meta: {
101
+ requestId: res.locals.requestId || generateRequestId(),
102
+ timestamp: getTimestamp()
103
+ }
104
+ };
105
+ return oldJson(response);
106
+ }
107
+ return oldJson(data);
109
108
  };
110
109
  res.send = function (data) {
111
110
  if (res.statusCode === 204) {
package/dist/types.d.ts CHANGED
@@ -1,17 +1,15 @@
1
1
  import { Request, Response, NextFunction } from "express";
2
2
  export interface StandardResponse<T = any> {
3
- status: "success" | "error";
4
3
  code: number;
5
4
  message: string;
6
- data: T | null;
7
5
  errors: Record<string, string[]> | null;
8
6
  meta: {
9
7
  requestId: string;
10
8
  timestamp: string;
11
- pagination: PaginationMeta | null;
12
9
  };
13
10
  }
14
- export interface PaginationMeta {
11
+ export interface Pagination<T> {
12
+ data: T[];
15
13
  total: number;
16
14
  page: number;
17
15
  perPage: number;
@@ -23,9 +21,9 @@ export interface RestMiddlewareFunctions {
23
21
  responseHandlerMiddleware: <T>(req: Request, res: Response, next: NextFunction) => void;
24
22
  }
25
23
  export interface RestResponseFunctions {
26
- success: <T>(req: Request, res: Response, data: T, message?: string | null) => void;
27
- paginate: <T>(req: Request, res: Response, data: T, pagination: PaginationMeta, message?: string | null) => void;
28
- created: <T>(req: Request, res: Response, data: T, message?: string) => void;
24
+ success: <T>(req: Request, res: Response, data: T) => void;
25
+ paginate: <T>(req: Request, res: Response, data: Pagination<T>) => void;
26
+ created: <T>(req: Request, res: Response, data: T) => void;
29
27
  deleted: (req: Request, res: Response) => void;
30
28
  validationError: (req: Request, res: Response, errors: ErrorFields, message?: string) => void;
31
29
  exceptionError: (req: Request, res: Response, errors: any, message?: string) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "response-standardizer",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
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, PaginationMeta, StandardResponse, RestResponseFunctions, RestMiddlewareFunctions, AuthRequest } from "./types.js";
2
+ import { ErrorFields, StandardResponse, RestResponseFunctions, RestMiddlewareFunctions, AuthRequest, Pagination } from "./types.js";
3
3
  import { generateRequestId, getTimestamp } from "./utils.js";
4
4
  import axios from "axios";
5
5
  import jwt, { TokenExpiredError } from "jsonwebtoken";
@@ -71,22 +71,20 @@ const role = (req: any, res: any, next: any, allowedRoles: string[]) => {
71
71
  }
72
72
  next()
73
73
  }
74
- const success = <T>(req: Request, res: Response, data: T, message: string | null = null) => {
75
- res.status(200).json({ data, message });
74
+ const success = <T>(req: Request, res: Response, data: T) => {
75
+ res.status(200).json(data);
76
76
  };
77
77
 
78
78
  const paginate = <T>(
79
79
  req: Request,
80
80
  res: Response,
81
- data: T,
82
- pagination: PaginationMeta,
83
- message: string | null = null
81
+ data: Pagination<T>
84
82
  ) => {
85
- res.status(200).json({ data, message, pagination });
83
+ res.status(200).json(data);
86
84
  };
87
85
 
88
- const created = <T>(req: Request, res: Response, data: T, message = "Record created successfully") => {
89
- res.status(201).json({ data, message });
86
+ const created = <T>(req: Request, res: Response, data: T) => {
87
+ res.status(201).json(data);
90
88
  };
91
89
 
92
90
  const deleted = (req: Request, res: Response) => {
@@ -99,7 +97,7 @@ const validationError = (
99
97
  errors: ErrorFields,
100
98
  message = "Validation error"
101
99
  ) => {
102
- res.status(400).json({ errors, message, data: null });
100
+ res.status(400).json({ errors, message });
103
101
  };
104
102
 
105
103
  const exceptionError = (
@@ -109,7 +107,6 @@ const exceptionError = (
109
107
  message = "Internal server error"
110
108
  ) => {
111
109
  res.status(500).json({
112
- data: null,
113
110
  message,
114
111
  errors
115
112
  });
@@ -145,20 +142,20 @@ const responseHandlerMiddleware = (
145
142
  const oldSend = res.send.bind(res);
146
143
 
147
144
  res.json = function (data: any) {
148
- const response: StandardResponse = {
149
- status: res.statusCode >= 200 && res.statusCode < 300 ? "success" : "error",
150
- code: res.statusCode,
151
- message: data?.message || res.locals.message || (res.statusCode < 300 ? "OK" : "Error"),
152
- data: data?.data ?? null,
153
- errors: data?.errors ?? null,
154
- meta: {
155
- requestId: res.locals.requestId || generateRequestId(),
156
- timestamp: getTimestamp(),
157
- pagination: data?.pagination ?? null
158
- }
159
- };
160
-
161
- return oldJson(response);
145
+ if(res.statusCode > 204){
146
+ const response: StandardResponse = {
147
+ code: res.statusCode,
148
+ message: data?.message || res.locals.message || (res.statusCode < 300 ? "OK" : "Error"),
149
+ errors: data?.errors ?? null,
150
+ meta: {
151
+ requestId: res.locals.requestId || generateRequestId(),
152
+ timestamp: getTimestamp()
153
+ }
154
+ };
155
+
156
+ return oldJson(response);
157
+ }
158
+ return oldJson(data);
162
159
  };
163
160
 
164
161
  res.send = function (data: any) {
package/src/types.ts CHANGED
@@ -1,19 +1,17 @@
1
1
  import { Request, Response, NextFunction } from "express";
2
2
 
3
3
  export interface StandardResponse<T = any> {
4
- status: "success" | "error";
5
4
  code: number;
6
5
  message: string;
7
- data: T | null;
8
6
  errors: Record<string, string[]> | null;
9
7
  meta: {
10
8
  requestId: string;
11
9
  timestamp: string;
12
- pagination: PaginationMeta | null;
13
10
  };
14
11
  }
15
12
 
16
- export interface PaginationMeta {
13
+ export interface Pagination<T>{
14
+ data: T[];
17
15
  total: number;
18
16
  page: number;
19
17
  perPage: number;
@@ -28,15 +26,13 @@ export interface RestMiddlewareFunctions {
28
26
  responseHandlerMiddleware: <T>(req: Request, res: Response, next: NextFunction) => void
29
27
  }
30
28
  export interface RestResponseFunctions {
31
- success: <T>(req: Request, res: Response, data: T, message?: string | null) => void;
29
+ success: <T>(req: Request, res: Response, data: T) => void;
32
30
  paginate: <T>(
33
31
  req: Request,
34
32
  res: Response,
35
- data: T,
36
- pagination: PaginationMeta,
37
- message?: string | null
33
+ data: Pagination<T>
38
34
  ) => void;
39
- created: <T>(req: Request, res: Response, data: T, message?: string) => void;
35
+ created: <T>(req: Request, res: Response, data: T) => void;
40
36
  deleted: (req: Request, res: Response) => void;
41
37
  validationError: (
42
38
  req: Request,