import dayjs from 'dayjs'; import utils from '@serverlessinc/sf-core/src/utils.js'; const { style } = utils; export default (msgParam) => { let msg = msgParam; const dateFormat = 'YYYY-MM-DD HH:mm:ss.SSS'; if (!msg.startsWith('REPORT')) msg = msg.trimRight(); if (msg.startsWith('START') || msg.startsWith('INIT_START') || msg.startsWith('REPORT') || msg.startsWith('END')) { msg = msg.replace('RequestId:', '-') msg = msg.replace('Version:', '- Version:') if (msg.includes('\tDuration:')) { msg = msg.split('\tDuration:').join('\nDuration:') } return style.aside(msg); } if (msg.trim() === 'Process exited before completing request') { return style.error(msg); } const splitted = msg.split('\t'); if (splitted.length < 3) { return msg; } let date = ''; let reqId = ''; let level = ''; if (!isNaN(new Date(splitted[0]).getTime())) { date = splitted[0]; reqId = splitted[1]; } else if (!isNaN(new Date(splitted[1]).getTime())) { date = splitted[1]; reqId = splitted[2]; level = `${splitted[0]}\t`; } else { return msg; } const text = msg.split(`${level || reqId}\t`)[1]; const time = dayjs(date).format(dateFormat); return `${style.aside(`${time} - ${reqId} - ${level}`)}\n${text}`; };