/* eslint no-console: 0 */ import zeroPad from './zero-pad.mjs'; const getTimestamp = () => { const d = new Date(); return `${[d.getFullYear(), zeroPad(d.getMonth() + 1, 2), zeroPad(d.getDate(), 2)].join('/')} ${[ zeroPad(d.getHours(), 2), zeroPad(d.getMinutes(), 2), zeroPad(d.getSeconds(), 2), ].join(':')}`; }; const wrapMessage = msg => `[${getTimestamp()}]: ${msg.map(m => JSON.stringify(m)).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;