Skip to content

dephub-js/error

Repository files navigation

@dephub/error 🚨

Lightweight error constructor for Node.js and browsers. Create, customize, and log errors with ease — your errors, your rules.

NPM version ESM-only


Features ✨

  • 🏗️ 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

Installation 📦

npm install @dephub/error
# or
pnpm add @dephub/error
# or
yarn add @dephub/error

Usage 🎯

Basic Error Creation

import { createError, logError } from '@dephub/error';

// Create structured errors
const error = createError('Invalid user input', {
  code: 'ERR_VALIDATION_FAILED',
  details: { field: 'email', value: 'invalid' },
  name: 'ValidationError',
});

// Log with context
logError(error, 'User registration failed');

Error Handling & Serialization

import { DepHubError, createError } from '@dephub/error';

// Constructor style
const error1 = new DepHubError(
  'Database connection failed',
  'ERR_DB_CONNECTION',
);

// Create function (recommended)
const error2 = createError('File not found', {
  code: 'ERR_FILE_NOT_FOUND',
  details: { path: '/some/file.txt' },
});

// Convert to JSON
console.log(error2.toJSON());
// { code: 'ERR_FILE_NOT_FOUND', details: { path: ... }, message: ... }

API Reference 📚

DepHubError

Core error class extending native Error.

class DepHubError extends Error {
  constructor(
    message: string,
    code?: string,
    details?: ErrorDetails,
    name?: string,
  );

  readonly name: string;
  readonly code: string;
  readonly details: ErrorDetails;

  toJSON(): Readonly<ErrorJSON>;
  toString(): string;
}

createError

Creates DepHubError instances with simplified syntax.

function createError(
  message: string,
  options?: CreateErrorOptions,
): DepHubError;

interface CreateErrorOptions {
  code?: string; // Error code (default: 'ERR_DEPHUB')
  details?: ErrorDetails; // Additional context (default: {})
  name?: string; // Error type name (default: 'DepHubError')
}

logError

Logs errors in consistent format across DepHub ecosystem.

function logError(error: unknown, context?: string): void;

License 📄

MIT License – see LICENSE. Author: Estarlin R (estarlincito.com)

About

Structured error handling for Node.js and browsers with TypeScript support, customizable codes, details, and consistent logging.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors