UNPKG

948 BPlain TextView Raw
1import ora from 'ora';
2import type {Ora, Options, Spinner, Color} from 'ora';
3import logger from './logger';
4
5export type Loader = Ora;
6
7class OraNoop implements Loader {
8 spinner: Spinner = {interval: 1, frames: []};
9 indent: number = 0;
10 isSpinning: boolean = false;
11 text: string = '';
12 prefixText: string = '';
13 color: Color = 'blue';
14
15 succeed(_text?: string | undefined) {
16 return this;
17 }
18 fail(_text?: string) {
19 return this;
20 }
21 start(_text?: string) {
22 return this;
23 }
24 stop() {
25 return this;
26 }
27 warn(_text?: string) {
28 return this;
29 }
30 info(_text?: string) {
31 return this;
32 }
33 stopAndPersist() {
34 return this;
35 }
36 clear() {
37 return this;
38 }
39 render() {
40 return this;
41 }
42 frame() {
43 return this.text;
44 }
45}
46
47export function getLoader(options?: string | Options | undefined): Loader {
48 return logger.isVerbose() ? new OraNoop() : ora(options);
49}
50
51export const NoopLoader = OraNoop;