genius-bridge-sdk
Version:
SDK for the Genius Bridge Protocol (GBP)
108 lines • 3.25 kB
JavaScript
;
/* eslint-disable @typescript-eslint/no-explicit-any */
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = exports.LoggerFactory = exports.PinoLogger = exports.WinstonLogger = exports.ConsoleLogger = exports.NoOpLogger = exports.LogLevelEnum = void 0;
var LogLevelEnum;
(function (LogLevelEnum) {
LogLevelEnum[LogLevelEnum["NONE"] = 0] = "NONE";
LogLevelEnum[LogLevelEnum["ERROR"] = 1] = "ERROR";
LogLevelEnum[LogLevelEnum["WARN"] = 2] = "WARN";
LogLevelEnum[LogLevelEnum["INFO"] = 3] = "INFO";
LogLevelEnum[LogLevelEnum["DEBUG"] = 4] = "DEBUG";
})(LogLevelEnum || (exports.LogLevelEnum = LogLevelEnum = {}));
// Default no-op logger (silent)
class NoOpLogger {
debug() { }
info() { }
warn() { }
error() { }
}
exports.NoOpLogger = NoOpLogger;
// Simple console logger for debugging
class ConsoleLogger {
constructor(options = {}) {
this._level = options.level ?? LogLevelEnum.NONE;
}
debug(message, meta) {
if (this._level >= LogLevelEnum.DEBUG) {
console.debug(`[DEBUG] ${message}`, meta);
}
}
info(message, meta) {
if (this._level >= LogLevelEnum.INFO) {
console.info(`[INFO] ${message}`, meta);
}
}
warn(message, meta) {
if (this._level >= LogLevelEnum.WARN) {
console.warn(`[WARN] ${message}`, meta);
}
}
error(message, error, meta) {
if (this._level >= LogLevelEnum.ERROR) {
console.error(`[ERROR] ${message}`, error, meta);
}
}
}
exports.ConsoleLogger = ConsoleLogger;
// Winston adapter
class WinstonLogger {
constructor(winstonInstance) {
this._logger = winstonInstance;
}
debug(message, meta) {
this._logger.debug(message, meta);
}
info(message, meta) {
this._logger.info(message, meta);
}
warn(message, meta) {
this._logger.warn(message, meta);
}
error(message, error, meta) {
this._logger.error(message, { error, ...meta });
}
}
exports.WinstonLogger = WinstonLogger;
// Pino adapter
class PinoLogger {
constructor(pinoInstance) {
this._logger = pinoInstance;
}
debug(message, meta) {
this._logger.debug(meta, message);
}
info(message, meta) {
this._logger.info(meta, message);
}
warn(message, meta) {
this._logger.warn(meta, message);
}
error(message, error, meta) {
this._logger.error({ err: error, ...meta }, message);
}
}
exports.PinoLogger = PinoLogger;
// SDK logging configuration
class LoggerFactory {
static getLogger() {
return LoggerFactory._instance;
}
static configure(logger) {
LoggerFactory._instance = logger;
}
static createConsoleLogger(options) {
return new ConsoleLogger(options);
}
static createWinstonLogger(winston) {
return new WinstonLogger(winston);
}
static createPinoLogger(pino) {
return new PinoLogger(pino);
}
}
exports.LoggerFactory = LoggerFactory;
LoggerFactory._instance = new NoOpLogger();
// Export a default logger instance (no-op by default)
exports.logger = LoggerFactory.getLogger();
//# sourceMappingURL=logger.js.map