1// lib/spinner.js
2const ora = require('ora')
3function spinner(message) {
4 const options = {
5 text: message,
6 // spinner: 'simpleDotsScrolling',
7 color: 'cyan'
8 }
9
10 this.oraSpinner = ora(options)
11 this.start = () => {
12 this.oraSpinner.start()
13 this.oraSpinner.render();
14 return this;
15 }
16 this.remove = () => {
17 this.oraSpinner.stop()
18 }
19 this.succeed = (succedMessage) => {
20 this.oraSpinner.text = succedMessage;
21 this.oraSpinner.succeed()
22 }
23 this.failed = (failedMessage) => {
24 this.oraSpinner.text = failedMessage;
25 this.oraSpinner.fail()
26 }
27
28 return this;
29}
30module.exports = spinner;
31
32
33// app.js
34'use strict'
35const spinner = require('./lib/spinner');
36// Loader
37const firstSpinner = new spinner('loading.. first spinner')
38 .start();
39
40const secondSpinner = new spinner('loading.. second spinner')
41 .start();
42
43const thirdSpinner = new spinner('loading.. third spinner')
44 .start();
45
46setTimeout(() => {
47 firstSpinner.succeed('completed 1');
48 secondSpinner.failed('failed 2');
49 thirdSpinner.succeed('completed 3');
50}, 2000); Created on 2/4/2018