UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

106 lines 3.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogLevel = void 0; exports.createWebSocketLogger = createWebSocketLogger; exports.createNullLogger = createNullLogger; /** * Уровни логирования */ var LogLevel; (function (LogLevel) { LogLevel["DEBUG"] = "debug"; LogLevel["INFO"] = "info"; LogLevel["WARN"] = "warn"; LogLevel["ERROR"] = "error"; })(LogLevel || (exports.LogLevel = LogLevel = {})); /** * Реализация логгера */ class LoggerImpl { /** * Создает новый логгер * @param component Название компонента * @param logFn Функция логирования */ constructor(component, logFn) { this.component = component; this.logFn = logFn; } /** * Логирует отладочное сообщение * @param message Сообщение для логирования * @param data Дополнительные данные */ debug(message, data) { this.logFn(LogLevel.DEBUG, `[${this.component}] ${message}`, data); } /** * Логирует информационное сообщение * @param message Сообщение для логирования * @param data Дополнительные данные */ info(message, data) { this.logFn(LogLevel.INFO, `[${this.component}] ${message}`, data); } /** * Логирует предупреждение * @param message Сообщение для логирования * @param data Дополнительные данные */ warn(message, data) { this.logFn(LogLevel.WARN, `[${this.component}] ${message}`, data); } /** * Логирует ошибку * @param message Сообщение для логирования * @param data Дополнительные данные */ error(message, data) { this.logFn(LogLevel.ERROR, `[${this.component}] ${message}`, data); } /** * Создает новый логгер с указанным префиксом * @param prefix Префикс для нового логгера * @returns Новый логгер с префиксом */ withPrefix(prefix) { return new LoggerImpl(`${this.component}:${prefix}`, this.logFn); } } /** * Функция логирования по умолчанию */ const defaultLogFunction = (level, message, data) => { if (level === LogLevel.ERROR) { console.error(message, data); } else if (level === LogLevel.WARN) { console.warn(message, data); } else if (level === LogLevel.INFO) { console.info(message, data); } else if (level === LogLevel.DEBUG) { if (process.env.NODE_ENV === 'development') { console.debug(message, data); } } }; /** * Создает новый логгер для WebSocket клиента * @param component Название компонента * @param logFn Функция логирования * @returns Новый логгер */ function createWebSocketLogger(component, logFn = defaultLogFunction) { return new LoggerImpl(component, logFn); } /** * Создает новый логгер с пустой функцией логирования * @param component Название компонента * @returns Новый логгер */ function createNullLogger(component) { return new LoggerImpl(component, () => { }); } //# sourceMappingURL=logger.js.map