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 +2 -1
- package/dist/index.js +22 -1
- package/dist/types.d.ts +6 -1
- package/package.json +1 -1
- package/src/index.ts +19 -2
- package/src/types.ts +7 -1
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
|
|
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
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
|
|
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
|
|
48
|
+
errors?: ErrorFields,
|
|
43
49
|
message?: string
|
|
44
50
|
) => void;
|
|
45
51
|
exceptionError: (
|