@janindu-pathirana/http-errors
v1.0.0
Published
Reusable HTTP error classes for Node.js and TypeScript applications.
Maintainers
Readme
@janindu-pathirana/http-errors
A reusable Node.js and TypeScript library for structured HTTP error classes and unified error handling.
Installation
npm install @janindu-pathirana/http-errorsFeatures
- Custom HTTP error classes for common HTTP status codes
- Centralized
HttpError.handleErrorhelper for safer error handling - ESM and CommonJS support via bundled
distoutput - Automatically typed for TypeScript projects
Usage
import {
HttpError,
BadRequestError,
InternalServerError,
} from "@janindu-pathirana/http-errors";
try {
throw new BadRequestError("bad");
} catch (error) {
HttpError.handleError(error, new InternalServerError("something went wrong"));
}Available Error Classes
BadRequestError— 400 Bad RequestUnauthorizedError— 401 UnauthorizedForbiddenError— 403 ForbiddenNotFoundError— 404 Not FoundInternalServerError— 500 Internal Server ErrorDatabaseError— custom database error typeHttpError— base class for creating custom HTTP errors
Express / NestJS Example
import express from "express";
import {
HttpError,
NotFoundError,
InternalServerError,
} from "@janindu-pathirana/http-errors";
const app = express();
app.get("/resource", (req, res) => {
throw new NotFoundError("Resource not found");
});
app.use(
(
error: unknown,
req: express.Request,
res: express.Response,
next: express.NextFunction,
) => {
HttpError.handleError(
error,
new InternalServerError("Unexpected server error"),
);
},
);
app.listen(3000, () => {
console.log("Server running on http://localhost:3000");
});The same pattern works in NestJS controllers and exception filters, since the package exports standard error classes.
API Reference
new HttpError(message?: string, statusCode?: number)
message— error message string (default:"Error")statusCode— HTTP status code (default:500)
new BadRequestError(message?: string)
message— error message string (default:"Bad Request")
new UnauthorizedError(message?: string)
message— error message string (default:"Unauthorized")
new ForbiddenError(message?: string)
message— error message string (default:"Forbidden")
new NotFoundError(message?: string)
message— error message string (default:"Not Found")
new InternalServerError(message?: string)
message— error message string (default:"Internal Server Error")
new DatabaseError(message?: string)
message— error message string
HttpError.handleError(error: unknown, fallback: HttpError)
error— the caught exceptionfallback— fallbackHttpErrorinstance to use when the caught value is not anHttpError
Error Handling Example
import {
HttpError,
BadRequestError,
InternalServerError,
} from "@janindu-pathirana/http-errors";
try {
throw new BadRequestError("Invalid input provided");
} catch (error) {
HttpError.handleError(error, new InternalServerError("something went wrong"));
}TypeScript Support
This package includes built-in TypeScript type definitions. Import the error classes directly and benefit from typed constructor signatures and HttpError helpers.
Publishing / Version
The package is published as @janindu-pathirana/http-errors with version 1.0.0 in package.json.
License
MIT
