UNPKG

936 BJavaScriptView Raw
1const ora = require('ora');
2
3const TERMINATE_STYLE = {
4 SUCCEED: 'succeed',
5 FAIL: 'fail',
6 WARN: 'warn',
7 INFO: 'info',
8 PERSIST: 'stopAndPersist',
9 CLEAR: 'stop'
10};
11
12class SpinnerView {
13 constructor(oraConfig) {
14 if (!oraConfig) {
15 oraConfig = {};
16 }
17 if (!oraConfig.color) {
18 oraConfig.color = 'yellow';
19 }
20 if (!oraConfig.spinner) {
21 oraConfig.spinner = process.platform === 'darwin' ? 'dots' : 'balloon';
22 }
23 this.oraSpinner = ora(oraConfig);
24 }
25
26 start(text) {
27 this.oraSpinner.start(text);
28 }
29
30 update(text) {
31 this.oraSpinner.text = text;
32 }
33
34 terminate(style, optionalMessage) {
35 if (!style) {
36 style = TERMINATE_STYLE.CLEAR;
37 }
38 this.oraSpinner[style](optionalMessage);
39 }
40}
41
42module.exports = SpinnerView;
43module.exports.TERMINATE_STYLE = TERMINATE_STYLE;