From e7c0a82c24fb03d1dc306943fd023f228379750f Mon Sep 17 00:00:00 2001 From: Yuxuan Zhang Date: Tue, 2 Jan 2024 22:40:09 -0500 Subject: [PATCH] feat: report subtask progress without a spinner --- src/node/utils/task.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/node/utils/task.ts b/src/node/utils/task.ts index 1466454b..2ab921e3 100644 --- a/src/node/utils/task.ts +++ b/src/node/utils/task.ts @@ -4,6 +4,7 @@ import c from 'picocolors' export const okMark = c.green('✓') export const failMark = c.red('✖') +export const clearLine = '\x1b[2K\r' export type UpdateHandle = ( done?: number, @@ -14,7 +15,17 @@ export type UpdateHandle = ( let updateHandle: UpdateHandle | null = null export const updateCurrentTask: UpdateHandle = (...args) => { - updateHandle?.(...args) + if (updateHandle) updateHandle(...args) + else if (!process.stderr.isTTY) { + return + } else if (args.length === 0) { + process.stderr.write(clearLine) + } else { + const name = args[2] || 'unknown task' + process.stderr.write( + `${clearLine}${name} [${args.slice(0, 2).join(' / ')}]` + ) + } } export async function task(