const frames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"] export function spinner(text: string) { let i = 0 const id = setInterval(() => { process.stderr.write(`\r\x1b[2K${frames[i++ % frames.length]} ${text}`) }, 80) return { set text(t: string) { text = t }, succeed(msg: string) { clearInterval(id) process.stderr.write(`\r\x1b[2K✔ ${msg}\n`) }, fail(msg: string) { clearInterval(id) process.stderr.write(`\r\x1b[2K✖ ${msg}\n`) }, } }