/* eslint no-console: 0 */ const zeroPad = (str, len) => { let output = `${str}`; if (!len || len <= output.length) return str; while (output.length < len) { output = `0${output}`; } return output; }; const getTimestamp = () => { const d = new Date(); return `${[d.getFullYear(), zeroPad(d.getMonth(), 2), zeroPad(d.getDate(), 2)].join('/')} ${[ zeroPad(d.getHours(), 2), zeroPad(d.getMinutes(), 2), zeroPad(d.getSeconds(), 2), ].join(':')}`; }; const wrapMessage = msg => `[${getTimestamp()}]: ${msg.join(' ')}`; const logger = { log(...args) { console.log(wrapMessage(args)); }, warn(...args) { console.warn(wrapMessage(args)); }, error(...args) { if (args[0] instanceof Error) { console.error(getTimestamp(), args[0].stack); return; } console.error(wrapMessage(args)); }, debug(...args) { if (!process.env.DEBUG) return; console.log(wrapMessage(args)); }, }; export default logger;