first commit

This commit is contained in:
Swapnil
2024-12-06 01:01:25 +05:30
commit 8a60e520c6
29 changed files with 2595 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
import { Request, Response, NextFunction } from 'express';
export function AsyncHandler() {
return function (
target: any,
propertyKey: string,
descriptor: PropertyDescriptor
): void {
const originalMethod = descriptor.value;
descriptor.value = function (req: Request, res: Response, next: NextFunction) {
Promise.resolve(originalMethod.call(this, req, res, next)).catch(next);
};
};
}

View File

@@ -0,0 +1,21 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class ApiError extends Error {
constructor(statusCode, message = 'Something went wrong', errors = [], isOperational = true, stack = '') {
super(message);
this.statusCode = statusCode;
this.data = null;
this.message = message;
this.success = false;
this.errors = errors;
this.isOperational = isOperational;
if (stack) {
this.stack = stack;
}
else {
Error.captureStackTrace(this, this.constructor);
}
}
}
exports.default = ApiError;
//# sourceMappingURL=ApiError.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ApiError.js","sourceRoot":"","sources":["ApiError.ts"],"names":[],"mappings":";;AAAA,MAAM,QAAkB,SAAQ,KAAK;IASjC,YACI,UAAkB,EAClB,UAAkB,sBAAsB,EACxC,SAAqB,EAAE,EACvB,gBAAyB,IAAI,EAC7B,QAAgB,EAAE;QAElB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;aAAM;YACH,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACnD;IACL,CAAC;CACJ;AACD,kBAAe,QAAQ,CAAC"}

View File

@@ -0,0 +1,32 @@
class ApiError<T = any> extends Error {
statusCode: number;
data: T | null;
message: string;
success: boolean;
errors: Array<any>;
isOperational: boolean;
stack?: string;
constructor(
statusCode: number,
message: string = 'Something went wrong',
errors: Array<any> = [],
isOperational: boolean = true,
stack: string = ''
) {
super(message);
this.statusCode = statusCode;
this.data = null;
this.message = message;
this.success = false;
this.errors = errors;
this.isOperational = isOperational;
if (stack) {
this.stack = stack;
} else {
Error.captureStackTrace(this, this.constructor);
}
}
}
export default ApiError;

View File

@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class ApiResponse {
constructor(statusCode, data, message = 'Success') {
this.statusCode = statusCode;
this.data = data;
this.message = message;
this.success = statusCode < 400;
}
}
exports.default = ApiResponse;
//# sourceMappingURL=ApiResponse.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ApiResponse.js","sourceRoot":"","sources":["ApiResponse.ts"],"names":[],"mappings":";;AAAA,MAAM,WAAW;IAMb,YAAY,UAAkB,EAAE,IAAc,EAAE,UAAkB,SAAS;QACvE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,UAAU,GAAG,GAAG,CAAC;IACpC,CAAC;CACJ;AAED,kBAAe,WAAW,CAAC"}

View File

@@ -0,0 +1,15 @@
class ApiResponse<T> {
statusCode: number;
data: T | null;
message: string;
success: boolean;
constructor(statusCode: number, data: T | null, message: string = 'Success') {
this.statusCode = statusCode;
this.data = data;
this.message = message;
this.success = statusCode < 400;
}
}
export default ApiResponse;