mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-26 13:26:22 +00:00
26 lines
615 B
TypeScript
26 lines
615 B
TypeScript
|
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
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|