error-codes-manager
v0.0.18
Published
A robust and structured solution for managing error codes in TypeScript/JavaScript applications.
Downloads
981
Maintainers
Readme
Error Codes Manager
A robust and structured solution for managing error codes in TypeScript/JavaScript applications.
🌟 Key Features
- Automatic generation of unique and traceable error codes
- Multi-language error message support
- Hierarchical error structure
- Error configuration validation
- Easy integration with any application
- MongoDB synchronization support
- File watching for automatic updates
- Read-only mode option
📋 Installation
npm install error-codes-manager
# or
yarn add error-codes-manager
🚀 Basic Usage
1. Create Error Configuration File
Create a JSON file (e.g., error-codes.json
) to store your error configurations:
{
"auth": {
"error_codes": {
"invalidCredentials": {
"description": "Invalid user credentials",
"userMessage": {
"es": "Usuario o contraseña incorrectos",
"en": "Invalid username or password"
}
},
"sessionExpired": {
"description": "User session has expired",
"userMessage": {
"es": "Tu sesión ha expirado, por favor inicia sesión nuevamente",
"en": "Your session has expired, please log in again"
}
}
}
}
}
2. Initialize Error Manager
import { ErrorManager } from 'error-codes-manager';
const config = {
errorJsonPath: './error-codes.json', // Path to your error codes JSON file
serviceName: 'MY_SERVICE', // Prefix for error codes
errorCodeLength: 8, // Length of generated error codes
isReadOnly: false, // Whether to allow modifications
mongoUri: 'mongodb://localhost:27017' // Optional: MongoDB URI for sync
};
const errorManager = new ErrorManager(config);
// Access error codes
console.log(errorManager.errorCodes.auth.error_codes.invalidCredentials);
// Output: {
// code: "MY_SERVICE_AUTH_001",
// description: "Invalid user credentials",
// userMessage: {
// es: "Usuario o contraseña incorrectos",
// en: "Invalid username or password"
// }
// }
🔧 Configuration Options
interface Config {
errorJsonPath: string; // Path to error codes JSON file
serviceName?: string; // Optional prefix for error codes
errorCodeLength?: number; // Length of generated error codes (default: 10)
isReadOnly?: boolean; // Whether to allow modifications (default: false)
}
💡 Features Explained
File-Based Configuration
- Store error codes in a JSON file
- Automatic reloading when file changes
- Structured organization of error codes
MongoDB Synchronization
- Optional sync with MongoDB
- Keep error codes consistent across services
- Centralized error management
Read-Only Mode
- Prevent accidental modifications
- Suitable for production environments
- Enhanced security
Service Name Prefixing
- Unique error codes per service
- Avoid conflicts in microservices
- Easy error tracking
📝 Advanced Example
const applicationErrors = {
payment: {
stripe: {
error_codes: {
cardDeclined: {
description: "Card was declined",
userMessage: {
es: "Tu tarjeta fue rechazada. Por favor, intenta con otra",
en: "Your card was declined. Please try another card"
}
}
}
},
paypal: {
error_codes: {
insufficientFunds: {
description: "Insufficient funds in PayPal account",
userMessage: {
es: "No hay suficientes fondos en tu cuenta PayPal",
en: "Insufficient funds in your PayPal account"
}
}
}
}
}
};
// Save this to error-codes.json
const config = {
errorJsonPath: './error-codes.json',
serviceName: 'PAYMENT_SERVICE',
errorCodeLength: 8,
};
const errorManager = new ErrorManager(config);
🤝 Contributing
Contributions are welcome. Please make sure to update tests as appropriate.