response-standardizer 1.1.1 → 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 +9 -13
- package/dist/types.d.ts +5 -7
- package/package.json +1 -1
- package/src/index.ts +10 -16
- package/src/types.ts +5 -9
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
|
|
55
|
-
res.status(200).json(
|
|
54
|
+
const success = (req, res, data) => {
|
|
55
|
+
res.status(200).json(data);
|
|
56
56
|
};
|
|
57
|
-
const paginate = (req, res, data
|
|
58
|
-
res.status(200).json(
|
|
57
|
+
const paginate = (req, res, data) => {
|
|
58
|
+
res.status(200).json(data);
|
|
59
59
|
};
|
|
60
|
-
const created = (req, res, data
|
|
61
|
-
res.status(201).json(
|
|
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
|
|
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
|
});
|
|
@@ -95,20 +94,17 @@ const responseHandlerMiddleware = (req, res, next) => {
|
|
|
95
94
|
res.json = function (data) {
|
|
96
95
|
if (res.statusCode > 204) {
|
|
97
96
|
const response = {
|
|
98
|
-
status: res.statusCode >= 200 && res.statusCode < 300 ? "success" : "error",
|
|
99
97
|
code: res.statusCode,
|
|
100
98
|
message: data?.message || res.locals.message || (res.statusCode < 300 ? "OK" : "Error"),
|
|
101
|
-
data: data?.data ?? null,
|
|
102
99
|
errors: data?.errors ?? null,
|
|
103
100
|
meta: {
|
|
104
101
|
requestId: res.locals.requestId || generateRequestId(),
|
|
105
|
-
timestamp: getTimestamp()
|
|
106
|
-
pagination: data?.pagination ?? null
|
|
102
|
+
timestamp: getTimestamp()
|
|
107
103
|
}
|
|
108
104
|
};
|
|
109
105
|
return oldJson(response);
|
|
110
106
|
}
|
|
111
|
-
return oldJson(data
|
|
107
|
+
return oldJson(data);
|
|
112
108
|
};
|
|
113
109
|
res.send = function (data) {
|
|
114
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
|
|
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
|
|
27
|
-
paginate: <T>(req: Request, res: Response, data: T
|
|
28
|
-
created: <T>(req: Request, res: Response, data: T
|
|
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
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Request, Response, NextFunction } from "express";
|
|
2
|
-
import { ErrorFields,
|
|
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
|
|
75
|
-
res.status(200).json(
|
|
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(
|
|
83
|
+
res.status(200).json(data);
|
|
86
84
|
};
|
|
87
85
|
|
|
88
|
-
const created = <T>(req: Request, res: Response, data: T
|
|
89
|
-
res.status(201).json(
|
|
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
|
|
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
|
});
|
|
@@ -147,21 +144,18 @@ const responseHandlerMiddleware = (
|
|
|
147
144
|
res.json = function (data: any) {
|
|
148
145
|
if(res.statusCode > 204){
|
|
149
146
|
const response: StandardResponse = {
|
|
150
|
-
status: res.statusCode >= 200 && res.statusCode < 300 ? "success" : "error",
|
|
151
147
|
code: res.statusCode,
|
|
152
148
|
message: data?.message || res.locals.message || (res.statusCode < 300 ? "OK" : "Error"),
|
|
153
|
-
data: data?.data ?? null,
|
|
154
149
|
errors: data?.errors ?? null,
|
|
155
150
|
meta: {
|
|
156
151
|
requestId: res.locals.requestId || generateRequestId(),
|
|
157
|
-
timestamp: getTimestamp()
|
|
158
|
-
pagination: data?.pagination ?? null
|
|
152
|
+
timestamp: getTimestamp()
|
|
159
153
|
}
|
|
160
154
|
};
|
|
161
155
|
|
|
162
156
|
return oldJson(response);
|
|
163
157
|
}
|
|
164
|
-
return oldJson(data
|
|
158
|
+
return oldJson(data);
|
|
165
159
|
};
|
|
166
160
|
|
|
167
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
|
|
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
|
|
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
|
|
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,
|