Repository navigation
Expand file tree
/
Copy pathdemo.js
More file actions
69 lines (59 loc) · 1.96 KB
/
Copy pathdemo.js
File metadata and controls
69 lines (59 loc) · 1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
'use strict';
const Spinner = require('./index.js');
console.log('=== Spinner Utils Demo ===\n');
// Demo 1: Default braille spinner
console.log('1. Braille spinner (default)');
const s1 = new Spinner({ prefix: 'Loading', autoStart: true });
setTimeout(() => s1.succeed('Loaded!'), 3000);
// Demo 2: Different presets
setTimeout(() => {
console.log('\n2. Moon spinner');
const s2 = new Spinner({ frames: 'moon', prefix: 'Loading', autoStart: true });
setTimeout(() => s2.succeed('Done!'), 3000);
}, 3500);
// Demo 3: Equal bars
setTimeout(() => {
console.log('\n3. Equal progress bar');
const s3 = new Spinner({ frames: 'equal', prefix: 'Progress', interval: 200, autoStart: true });
setTimeout(() => s3.succeed('Complete!'), 3000);
}, 7000);
// Demo 4: Custom frames
setTimeout(() => {
console.log('\n4. Custom frames');
const s4 = new Spinner({
frames: ['<', '<-', '<--', '<---', '<----', '-----'],
prefix: 'Sending',
interval: 150,
autoStart: true
});
setTimeout(() => s4.succeed('Sent!'), 3000);
}, 10500);
// Demo 5: With progress
setTimeout(() => {
console.log('\n5. With progress percentage');
const s5 = new Spinner({ frames: 'box', prefix: 'Downloading', interval: 100, autoStart: true });
let progress = 0;
const progressInterval = setInterval(() => {
progress += 10;
s5.setProgress(progress);
if (progress >= 100) {
clearInterval(progressInterval);
s5.succeed('Downloaded!');
}
}, 300);
}, 14000);
// Demo 6: Using .spin() helper
setTimeout(() => {
console.log('\n6. Using Spinner.spin() helper');
const s6 = Spinner.spin('pulse', 'Thinking', 120);
setTimeout(() => s6.succeed('Thought!'), 3000);
}, 17500);
// Demo 7: List all presets
setTimeout(() => {
console.log('\n7. All available presets:');
Spinner.presets.forEach(name => {
const frames = Spinner.preset(name);
console.log(` ${name}: ${frames.join(' ')}`);
});
}, 21000);
console.log('Running demos... (each lasts 3 seconds)');