123456789101112131415161718192021222324 |
- import ora, { type Ora } from 'ora';
- interface SpinnerOptions {
- failedText?: string;
- successText?: string;
- title: string;
- }
- export async function spinner<T>(
- { failedText, successText, title }: SpinnerOptions,
- callback: () => Promise<T>,
- ): Promise<T> {
- const loading: Ora = ora(title).start();
- try {
- const result = await callback();
- loading.succeed(successText || 'Success!');
- return result;
- } catch (error) {
- loading.fail(failedText || 'Failed!');
- throw error;
- } finally {
- loading.stop();
- }
- }
|