@ali-hajeh/response-handler
v0.0.5
Published
A package to help organize responses from your Express.js API
Maintainers
Readme
@ali-hajeh/response-handler
A lightweight and flexible package to help organize and standardize responses from your Express.js API.
Installation
Install the package using npm:
npm install @ali-hajeh/response-handlerUsage
Import the ResponseHandler class in your Express.js application:
import ResponseHandler from "@ali-hajeh/response-handler";Middleware Setup
To use the ResponseHandler, you need to set it up as middleware in your Express application:
import express from "express";
import ResponseHandler from "@ali-hajeh/response-handler";
const app = express();
// Apply the middleware
app.use(ResponseHandler.middleware());Available Methods
Once the middleware is set up, the following methods will be available on the res object in your route handlers:
success: Send a success responsebadRequest: Send a bad request responsejoiValidationError: Send a response for Joi validation errorsnotFound: Send a not found responseserverError: Send a server error responseunauthorized: Send an unauthorized response
Example
import express from "express";
import ResponseHandler from "@ali-hajeh/response-handler";
const app = express();
// Apply the middleware
app.use(ResponseHandler.middleware());
app.get("/api/users", (req, res) => {
// Your logic here
const users = [{ id: 1, name: "John Doe" }];
res.success({
data: users,
message: "Users retrieved successfully",
});
});
app.use((req, res) => {
res.notFound({ message: "Route not found" });
});
app.use((err, req, res, next) => {
res.serverError({ message: err.message });
});API Reference
res.success(options)
Send a success response.
options:message(optional): Success message (default: "Success")data(optional): Data to be sent in the responsestatusCode(optional): HTTP status code (default: 200)
res.badRequest(options)
Send a bad request response.
options:message(optional): Error message (default: "Bad Request")errors(optional): Error detailsstatusCode(optional): HTTP status code (default: 400)
res.joiValidationError(error, options)
Send a response for Joi validation errors.
error: Joi ValidationError objectoptions:statusCode(optional): HTTP status code (default: 400)
res.notFound(options)
Send a not found response.
options:message(optional): Error message (default: "Not Found")errors(optional): Error detailsstatusCode(optional): HTTP status code (default: 404)
res.serverError(options)
Send a server error response.
options:message(optional): Error message (default: "Internal Server Error")errors(optional): Error detailsstatusCode(optional): HTTP status code (default: 500)
res.unauthorized(options)
Send an unauthorized response.
options:message(optional): Error message (default: "Unauthorized")errors(optional): Error detailsstatusCode(optional): HTTP status code (default: 401)
Custom Methods
You can add custom response methods using the ResponseHandler.addCustomMethod function:
ResponseHandler.addCustomMethod<[data: any, options?: { flag?: boolean }]>(
"customResponse",
function (data, options = {}) {
return this.status(200).json({ custom: true, data, ...options });
}
);
// Usage in a route
app.get("/custom", (req, res) => {
res.customResponse({ foo: "bar" }, { flag: true });
});TypeScript Support
This package is written in TypeScript and includes type definitions. It exports a ResponseType interface that you can use to type your responses:
import { ResponseType } from "@ali-hajeh/response-handler";
const response: ResponseType = {
success: true,
message: "Success",
data: { id: 1 },
statusCode: 200,
};Contributing
Contributions are welcome! Please feel free to submit a Pull Request or an Issue.
License
This project is licensed under the ISC License.
