UNPKG

blockchain-api

Version:

API utilities for interacting with the Exatechl2 blockchain

81 lines (80 loc) 1.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logger = void 0; exports.configureLogger = configureLogger; const isBrowser = typeof window !== 'undefined'; let config = { enabled: !isBrowser, level: 'info', logToConsole: true }; const LOG_LEVELS = { debug: 0, info: 1, warn: 2, error: 3 }; /** * * @param options */ function configureLogger(options) { config = { ...config, ...options }; } /** * * @param level * @returns */ function isLevelEnabled(level) { if (!config.enabled) return false; return LOG_LEVELS[level] >= LOG_LEVELS[config.level]; } /** * * @param level * @param args */ function log(level, ...args) { if (!isLevelEnabled(level)) return; if (config.logToConsole) { switch (level) { case 'debug': console.debug(...args); break; case 'info': console.info(...args); break; case 'warn': console.warn(...args); break; case 'error': console.error(...args); break; } } } exports.logger = { debug: (...args) => log('debug', ...args), info: (...args) => log('info', ...args), warn: (...args) => log('warn', ...args), error: (...args) => log('error', ...args), /** * * @param enabled */ setEnabled: (enabled) => { config.enabled = enabled; }, /** * */ disableBrowserLogs: () => { if (isBrowser) { config.enabled = false; } } }; exports.default = exports.logger;