better concurrency debugging, --concurrency flag for npx quartz build

This commit is contained in:
Jacky Zhao
2023-08-08 22:52:49 -07:00
parent e4950e06a1
commit 49bd6bc3ff
9 changed files with 62 additions and 28 deletions

View File

@ -1,17 +1,22 @@
import chalk from "chalk"
import process from "process"
import { isMainThread } from "workerpool"
const rootFile = /.*at file:/
export function trace(msg: string, err: Error) {
const stack = err.stack
console.log()
console.log(
const lines: string[] = []
lines.push("")
lines.push(
"\n" +
chalk.bgRed.black.bold(" ERROR ") +
"\n" +
chalk.red(` ${msg}`) +
(err.message.length > 0 ? `: ${err.message}` : ""),
chalk.bgRed.black.bold(" ERROR ") +
"\n" +
chalk.red(` ${msg}`) +
(err.message.length > 0 ? `: ${err.message}` : ""),
)
if (!stack) {
return
}
@ -23,11 +28,20 @@ export function trace(msg: string, err: Error) {
}
if (!line.includes("node_modules")) {
console.log(` ${line}`)
lines.push(` ${line}`)
if (rootFile.test(line)) {
reachedEndOfLegibleTrace = true
}
}
}
process.exit(1)
const traceMsg = lines.join("\n")
if (!isMainThread) {
// gather lines and throw
throw new Error(traceMsg)
} else {
// print and exit
console.error(traceMsg)
process.exit(1)
}
}