UNPKG

@spindox/superenalotto-bridge

Version:
70 lines (58 loc) 1.47 kB
/* eslint-disable no-console */ const LOG_STYLE = 'font-weight: bold'; const loggers = {}; const get = (name) => { if (!loggers[name]) { loggers[name] = { name, enabled: true, get: (child) => get(`${name}:${child}`), log: (...args) => log(name, ...args), info: (...args) => info(name, ...args), warn: (...args) => warn(name, ...args), error: (...args) => error(name, ...args), enable: enable.bind(null, name), disable: disable.bind(null, name), }; } return loggers[name]; }; const log = (name, ...args) => { if (!loggers[name].enabled) return; console.log(`%c[${name}]`, LOG_STYLE, ...args); }; const info = (name, ...args) => { if (!loggers[name].enabled) return; console.info(`%c[${name}]`, `${LOG_STYLE}; color: #2962FF`, ...args); }; const warn = (name, ...args) => { if (!loggers[name].enabled) return; console.warn(`%c[${name}]`, LOG_STYLE, ...args); }; const error = (name, ...args) => { if (!loggers[name].enabled) return; console.error(`%c[${name}]`, LOG_STYLE, ...args); }; const enable = (name) => { loggers[name].enabled = true; }; const disable = (name) => { loggers[name].enabled = false; }; const enableAll = () => { Object.keys(loggers).forEach((name) => { enable(name); }); }; const disableAll = () => { Object.keys(loggers).forEach((name) => { disable(name); }); }; export default { get, enable, disable, enableAll, disableAll, };