0.0.18 • Published 7 months ago

error-codes-manager v0.0.18

Weekly downloads
-
License
ISC
Repository
-
Last release
7 months ago

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

  1. File-Based Configuration

    • Store error codes in a JSON file
    • Automatic reloading when file changes
    • Structured organization of error codes
  2. MongoDB Synchronization

    • Optional sync with MongoDB
    • Keep error codes consistent across services
    • Centralized error management
  3. Read-Only Mode

    • Prevent accidental modifications
    • Suitable for production environments
    • Enhanced security
  4. 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.

📄 License

MIT

0.0.10

7 months ago

0.0.11

7 months ago

0.0.12

7 months ago

0.0.13

7 months ago

0.0.14

7 months ago

0.0.15

7 months ago

0.0.9

7 months ago

0.0.16

7 months ago

0.0.17

7 months ago

0.0.18

7 months ago

0.0.8

7 months ago

0.0.7

7 months ago

0.0.6

7 months ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago