/* 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 wrapMessage = msg => { const d = new Date(); const timestamp = `${[d.getFullYear(), zeroPad(d.getMonth(), 2), zeroPad(d.getDate(), 2)].join( '/' )} ${[zeroPad(d.getHours(), 2), zeroPad(d.getMinutes(), 2), zeroPad(d.getSeconds(), 2)].join( ':' )}`; return `[${timestamp}]: ${msg.join(' ')}`; }; const logger = { log(...args) { console.log(wrapMessage(args)); }, warn(...args) { console.warn(wrapMessage(args)); }, error(...args) { console.error(wrapMessage(args)); }, debug(...args) { if (!process.env.DEBUG) return; console.log(wrapMessage(args)); }, }; export default logger;