@ozen-ui/logger
Version:
A client logger
49 lines (48 loc) • 1.35 kB
JavaScript
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 };