mirror of https://github.com/grafana/grafana.git
20 lines
435 B
TypeScript
20 lines
435 B
TypeScript
import ora from 'ora';
|
|
|
|
type FnToSpin<T> = (options: T) => Promise<void>;
|
|
|
|
export const useSpinner = <T>(spinnerLabel: string, fn: FnToSpin<T>, killProcess = true) => {
|
|
return async (options: T) => {
|
|
const spinner = ora(spinnerLabel);
|
|
spinner.start();
|
|
try {
|
|
await fn(options);
|
|
spinner.succeed();
|
|
} catch (e) {
|
|
spinner.fail(e);
|
|
if (killProcess) {
|
|
process.exit(1);
|
|
}
|
|
}
|
|
};
|
|
};
|