UNPKG

exp-core

Version:

Core utilities and middleware for building robust Express applications, including standard API responses, async error handling, request sanitization, and extended request types.

68 lines (64 loc) 2.01 kB
// src/utils/apiResponse.util.ts var successResponse = (res, options) => { if (!options.statusCode) options.statusCode = 200; return apiResponse(res, true, options); }; var errorResponse = (res, options) => { if (!options.statusCode) options.statusCode = 400; return apiResponse(res, false, options); }; function apiResponse(res, isSuccess, options) { const responseObject = { isSuccess, message: options.message, ...options.meta && { meta: options.meta }, ...options.data && { data: options.data }, ...options.errors && { errors: options.errors } }; res.status(options.statusCode).json(responseObject); } // src/middlewares/aw.middleware.ts var aw = (requestHandler) => { return (req, res, next) => { Promise.resolve(requestHandler(req, res, next)).catch((error) => { const message = error.message || "An unexpected error occurred. Please try again later." /* SERVER_ERROR */; return errorResponse(res, { message, statusCode: error.statusCode || 400, errors: error.errors || null }); }); }; }; var aw_middleware_default = aw; // src/libs/ApiError.lib.ts var ApiError = class extends Error { /** * Creates a new ApiError instance. * * @param {string} message - A human-readable error message. * @param {number} [statusCode=400] - Optional HTTP status code. * @param {Record<string, string[]> | null} [errors=null] - Optional detailed errors. */ constructor(message, statusCode = 400, errors = null) { super(message); this.statusCode = statusCode; this.errors = errors; } }; var ApiError_lib_default = ApiError; // src/middlewares/body.middleware.ts var initRequestBody = aw_middleware_default( async (req, res, next) => { if (!req.body) req.body = {}; next(); } ); var body_middleware_default = initRequestBody; export { ApiError_lib_default as ApiError, aw_middleware_default as aw, errorResponse, body_middleware_default as initRequestBody, successResponse };