Lightweight error constructor for Node.js and browsers. Create, customize, and log errors with ease — your errors, your rules.
- 🏗️ Structured Errors - Custom error codes, details, and names
- 📊 JSON Serialization - Convert errors to structured objects
- 🎯 TypeScript Ready - Full type safety with zero configuration
- 🪶 Lightweight - Minimal dependencies, focused functionality
- 🌐 Universal - Works in Node.js and browsers
- 📝 Consistent Logging - Unified error logging with
lumilog
npm install @dephub/error
# or
pnpm add @dephub/error
# or
yarn add @dephub/errorimport{createError,logError}from'@dephub/error';// Create structured errorsconsterror=createError('Invalid user input',{code: 'ERR_VALIDATION_FAILED',details: {field: 'email',value: 'invalid'},name: 'ValidationError',});// Log with contextlogError(error,'User registration failed');import{DepHubError,createError}from'@dephub/error';// Constructor styleconsterror1=newDepHubError('Database connection failed','ERR_DB_CONNECTION',);// Create function (recommended)consterror2=createError('File not found',{code: 'ERR_FILE_NOT_FOUND',details: {path: '/some/file.txt'},});// Convert to JSONconsole.log(error2.toJSON());// { code: 'ERR_FILE_NOT_FOUND', details: { path: ... }, message: ... }Core error class extending native Error.
classDepHubErrorextendsError{constructor(message: string,code?: string,details?: ErrorDetails,name?: string,);readonlyname: string;readonlycode: string;readonlydetails: ErrorDetails;toJSON(): Readonly<ErrorJSON>;toString(): string;}Creates DepHubError instances with simplified syntax.
functioncreateError(message: string,options?: CreateErrorOptions,): DepHubError;interfaceCreateErrorOptions{code?: string;// Error code (default: 'ERR_DEPHUB')details?: ErrorDetails;// Additional context (default: {})name?: string;// Error type name (default: 'DepHubError')}Logs errors in consistent format across DepHub ecosystem.
functionlogError(error: unknown,context?: string): void;MIT License – see LICENSE. Author: Estarlin R (estarlincito.com)