
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
use-http-error
Advanced tools
A TypeScript library that provides a robust and type-safe way to handle HTTP errors in modern JavaScript applications.
A TypeScript library that provides a robust and type-safe way to handle HTTP errors in modern JavaScript applications.
yarn add use-http-error
import HttpError from 'use-http-error';
// Create a basic HTTP error
const error = new HttpError(404);
console.log(error.message); // "Not Found"
console.log(error.status); // 404
// Create an error with custom message
const customError = new HttpError(400, 'Invalid input parameters');
// Create error with context and headers
const error = new HttpError(500, 'Internal Server Error', {
context: { errorCode: 'DB_CONNECTION_FAILED' },
headers: new Headers({
'retry-after': '30'
})
});
// Convert to JSON
const jsonError = error.toJson();
/*
{
context: { errorCode: 'DB_CONNECTION_FAILED' },
message: 'Internal Server Error',
stack: [...],
status: 500
}
*/
// Convert to Response
const response = error.toResponse();
// Returns Web API Response object
// Convert to string
console.log(error.toString()); // "500 - Internal Server Error"
// Wrap number status
const numberError = HttpError.wrap(404);
// Wrap string message
const messageError = HttpError.wrap('Not Found', 404);
// Wrap regular Error
const regularError = new Error('Database connection failed');
const wrappedError = HttpError.wrap(regularError, 500);
const error = new HttpError(404);
const regularError = new Error('Regular error');
console.log(HttpError.is(error)); // true
console.log(HttpError.is(regularError)); // false
// Create from JSON
const json = {
context: { foo: 'bar' },
message: 'Unauthorized Access',
stack: [],
status: 401
};
const error = HttpError.fromJson(json);
// Convert to JSON directly
const jsonError = HttpError.json(404);
// or
const jsonError = HttpError.json('Not Found', 404);
// or
const jsonError = HttpError.json(new Error('Custom error'), 500);
// Convert to Response directly
const response = HttpError.response(404);
// or with custom message and status
const response = HttpError.response('Service unavailable', 503);
// Convert to string directly
const errorString = HttpError.string(404); // "404 - Not Found"
// or with custom message
const errorString = HttpError.string('Invalid input', 400);
// Disable stack traces globally
HttpError.includeStack = false;
const error = new HttpError(500);
console.log(error.toJson().stack); // []
// Re-enable stack traces
HttpError.includeStack = true;
# Run tests
yarn test
type Context = Record<string, any> | null;
type Json = {
context: Context;
message: string;
stack: ErrorStackParser.StackFrame[];
status: number;
};
type HttpErrorOptions = {
context?: Context;
headers?: Headers;
};
httpError: true property for type checkingContributions, issues and feature requests are welcome!
MIT © Felipe Rohde
Give a ⭐️ if this project helped you!
Felipe Rohde
FAQs
A TypeScript library that provides a robust and type-safe way to handle HTTP errors in modern JavaScript applications.
We found that use-http-error demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.