1234567891011121314151617181920212223242526 |
- import type { Ora } from 'ora';
- import 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();
- }
- }
|