Public mirror for @nebutra/errors from Nebutra/Nebutra-Sailor.
This repository is generated from the Nebutra Sailor monorepo. Package releases are cut from the monorepo and mirrored here for discovery, standalone cloning, and contribution intake.
- Canonical source:
packages/platform/errorsinNebutra/Nebutra-Sailor - Package registry: npm and GitHub Packages
- Contributions: open issues or PRs here; maintainers port accepted changes back into the monorepo source package
Standardized error handling.
pnpm add @nebutra/errors- Error Classes — Typed error hierarchy
- HTTP Mapping — Automatic status code mapping
- Error Codes — Machine-readable error identifiers
- Sentry Integration — Automatic error reporting
import{NotFoundError,UnauthorizedError,ValidationError,RateLimitError,}from"@nebutra/errors";thrownewNotFoundError("User not found",{userId: "123"});thrownewUnauthorizedError("Invalid token");thrownewValidationError("Email is required",{field: "email"});thrownewRateLimitError("Too many requests",{retryAfter: 60});| Class | HTTP Status | Code |
|---|---|---|
BadRequestError | 400 | BAD_REQUEST |
UnauthorizedError | 401 | UNAUTHORIZED |
ForbiddenError | 403 | FORBIDDEN |
NotFoundError | 404 | NOT_FOUND |
ConflictError | 409 | CONFLICT |
ValidationError | 422 | VALIDATION_ERROR |
RateLimitError | 429 | RATE_LIMITED |
InternalError | 500 | INTERNAL_ERROR |
import{errorHandler}from"@nebutra/errors";// Express/Honoapp.use(errorHandler());// Response format:// {// "error": {// "code": "NOT_FOUND",// "message": "User not found",// "details": { "userId": "123" }// }// }import{isAppError,AppError}from"@nebutra/errors";try{awaitriskyOperation();}catch(error){if(isAppError(error)){// Known error with code and statusreturnhandleKnownError(error.code,error.statusCode);}else{// Unknown errorthrownewInternalError("Unexpected error");}}import{captureError}from"@nebutra/errors";try{awaitoperation();}catch(error){captureError(error,{user: {id: userId},tags: {feature: "checkout"},});}