UNPKG

ipsambeatae

Version:

Shared dependencies of Compass, the MongoDB extension for VSCode and MongoSH

18 lines (16 loc) 420 B
import ora from 'ora'; export async function withProgress< Fn extends (this: ora.Ora, ...args: any[]) => any >(text: string, fn: Fn, ...args: Parameters<Fn>): Promise<ReturnType<Fn>> { const spinner = ora(text).start(); try { const result = await fn.call(spinner, ...args); spinner.succeed(); return result; } catch (e) { if (spinner.isSpinning) { spinner.fail(); } throw e; } }