Blame view

Yi.Vben5.Vue3/internal/node-utils/src/spinner.ts 560 Bytes
515fceeb   “wangming”   框架初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  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();
    }
  }