UNPKG

techor

Version:

Author technology like a top leader

43 lines (40 loc) 1.37 kB
import log from '@techor/log'; import { trimNewlines } from 'trim-newlines'; const formatFrame = (target, color)=>{ const frameLines = target.frame.split('\n'); return frameLines.map((line, index)=>{ if (target.loc.line - 1 === index) { return log.chalk.white(line); } if (target.loc.line === index) { // 如果错误行与当前行匹配,添加箭头指向错误列 return line.replace('^', log.chalk[color]('^')); } return log.chalk.dim(line); }).join('\n'); }; function logRollupWarning(warning) { console.log(''); log.warn(warning.message); if (warning.frame) { console.log(''); const formattedFrame = formatFrame(warning, 'red'); console.log(trimNewlines(formattedFrame)); } if (warning.loc) { console.log(''); console.log(`at ${log.chalk.cyan(`${warning.loc.file}:${warning.loc.line}:${warning.loc.column}`)}`); } } function logRollupError(error) { log(error); if (error.frame) { const formattedFrame = formatFrame(error, 'red'); console.log(trimNewlines(formattedFrame)); } if (error.loc) { console.log(''); console.log(`at ${log.chalk.cyan(`${error.loc.file}:${error.loc.line}:${error.loc.column}`)}`); } } export { logRollupError, logRollupWarning };