Jacky Zhao
2023-07-20 410fc9c8d37b0c4118c70678db5d2e55a842f486
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import chalk from "chalk"
 
const rootFile = /.*at file:/
export function trace(msg: string, err: Error) {
  const stack = err.stack
  console.log()
  console.log(chalk.bgRed.white.bold(" ERROR ") + chalk.red(` ${msg}`) + (err.message.length > 0 ? `: ${err.message}` : ""))
  if (!stack) {
    return
  }
 
  let reachedEndOfLegibleTrace = false
  for (const line of stack.split('\n').slice(1)) {
    if (reachedEndOfLegibleTrace) {
      break
    }
 
    if (!line.includes("node_modules")) {
      console.log(` ${line}`)
      if (rootFile.test(line)) {
        reachedEndOfLegibleTrace = true
      }
    }
  }
}