UNPKG

@ozen-ui/logger

Version:

A client logger

49 lines (48 loc) 1.35 kB
let defaultConfig = { scope: 'ozen-ui', }; const setConfig = (config) => { defaultConfig = Object.assign(Object.assign({}, defaultConfig), config); }; const getMessage = (message) => { if (!defaultConfig.scope) { return message; } return `[${defaultConfig.scope}] ${message}`; }; const logger = { info: (message, ...rest) => { console.info(getMessage(message), ...rest); }, warn: (message, ...rest) => { console.warn(getMessage(message), ...rest); }, error: (message, ...rest) => { console.error(getMessage(message), ...rest); }, log: (message, ...rest) => { console.log(getMessage(message), ...rest); }, trace: (message, ...rest) => { console.trace(getMessage(message), ...rest); }, debug: (message, ...rest) => { console.debug(getMessage(message), ...rest); }, }; const logged = new Set(); const once = (type) => (message, ...rest) => { if (!logged.has(message)) { logger[type](message, ...rest); logged.add(message); } }; once.clear = () => logged.clear(); once.trace = once('trace'); once.debug = once('debug'); once.info = once('info'); once.warn = once('warn'); once.error = once('error'); once.log = once('log'); const deprecate = once('warn'); export { logger, deprecate, once, setConfig };