UNPKG

@johntad/m-pesa

Version:

A TypeScript SDK for integrating M-Pesa mobile payment services into applications, enabling seamless money transfers and transactions.

111 lines (110 loc) 3.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = exports.LogLevel = void 0; /** * Defines the severity levels for log messages. * * This enum provides a standardized set of log levels to categorize the importance * and urgency of log messages generated by the application. * * @enum {number} * * @property {number} Emergency - Indicates a system-wide message that immediately jeopardizes the system and may require immediate action. * @property {number} Alert - A serious problem that requires immediate attention. * @property {number} Critical - A critical condition that, although not immediately life-threatening, requires immediate attention. * @property {number} Error - An error condition. * @property {number} Warning - A warning condition. * @property {number} Notice - A normal but significant condition. * @property {number} Informational - Informational messages. * @property {number} Debug - Debug-level messages for development and troubleshooting. */ var LogLevel; (function (LogLevel) { LogLevel[LogLevel["Emergency"] = 0] = "Emergency"; LogLevel[LogLevel["Alert"] = 1] = "Alert"; LogLevel[LogLevel["Critical"] = 2] = "Critical"; LogLevel[LogLevel["Error"] = 3] = "Error"; LogLevel[LogLevel["Warning"] = 4] = "Warning"; LogLevel[LogLevel["Notice"] = 5] = "Notice"; LogLevel[LogLevel["Informational"] = 6] = "Informational"; LogLevel[LogLevel["Debug"] = 7] = "Debug"; })(LogLevel || (exports.LogLevel = LogLevel = {})); /** * A logger utility for standardized logging. */ class Logger { /** * Creates a new Logger instance. * @param minLogLevel - The minimum log level to capture (default is Informational). */ constructor(minLogLevel = LogLevel.Informational) { this.minLogLevel = minLogLevel; } /** * Logs a message if the specified level meets the minimum log level. * @param level - The log level for this message. * @param message - The log message. * @param context - Additional contextual information (optional). */ log(level, message, context) { if (level > this.minLogLevel) return; const logEntry = { timestamp: new Date().toISOString(), level: LogLevel[level].toLowerCase(), message, context, }; // Output as JSON for easy parsing console.log(JSON.stringify(logEntry)); } /** * Logs an emergency message (level 0). */ logEmergency(message, context) { this.log(LogLevel.Emergency, message, context); } /** * Logs an alert message (level 1). */ logAlert(message, context) { this.log(LogLevel.Alert, message, context); } /** * Logs a critical message (level 2). */ logCritical(message, context) { this.log(LogLevel.Critical, message, context); } /** * Logs an error message (level 3). */ logError(message, context) { this.log(LogLevel.Error, message, context); } /** * Logs a warning message (level 4). */ logWarning(message, context) { this.log(LogLevel.Warning, message, context); } /** * Logs a notice message (level 5). */ logNotice(message, context) { this.log(LogLevel.Notice, message, context); } /** * Logs an informational message (level 6). */ logInfo(message, context) { this.log(LogLevel.Informational, message, context); } /** * Logs a debug message (level 7). */ logDebug(message, context) { this.log(LogLevel.Debug, message, context); } } exports.Logger = Logger;