mirror of
https://github.com/grafana/grafana.git
synced 2025-01-24 23:37:01 -06:00
2b9cf1132f
Since with ora#fail you can stderr it instead of using the stdout, and it's a bit nicer since it will show that cross sign :)
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);
|
|
}
|
|
}
|
|
};
|
|
};
|