@dependabot/yarn-lib
Version:
📦🐈 Fast, reliable, and secure dependency management.
56 lines (51 loc) • 2.21 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _util;
function _load_util() {
return _util = require('./util.js');
}
class Spinner {
constructor(stdout = process.stderr, lineNumber = 0) {
this.current = 0;
this.prefix = '';
this.lineNumber = lineNumber;
this.stdout = stdout;
this.delay = 60;
this.chars = Spinner.spinners[28].split('');
this.text = '';
this.id = null;
}
setPrefix(prefix) {
this.prefix = prefix;
}
setText(text) {
this.text = text;
}
start() {
this.current = 0;
this.render();
}
render() {
if (this.id) {
clearTimeout(this.id);
}
// build line ensuring we don't wrap to the next line
let msg = `${this.prefix}${this.chars[this.current]} ${this.text}`;
const columns = typeof this.stdout.columns === 'number' ? this.stdout.columns : 100;
msg = msg.slice(0, columns);
(0, (_util || _load_util()).writeOnNthLine)(this.stdout, this.lineNumber, msg);
this.current = ++this.current % this.chars.length;
this.id = setTimeout(() => this.render(), this.delay);
}
stop() {
if (this.id) {
clearTimeout(this.id);
this.id = null;
}
(0, (_util || _load_util()).clearNthLine)(this.stdout, this.lineNumber);
}
}
exports.default = Spinner;
Spinner.spinners = ['|/-\\', '⠂-–—–-', '◐◓◑◒', '◴◷◶◵', '◰◳◲◱', '▖▘▝▗', '■□▪▫', '▌▀▐▄', '▉▊▋▌▍▎▏▎▍▌▋▊▉', '▁▃▄▅▆▇█▇▆▅▄▃', '←↖↑↗→↘↓↙', '┤┘┴└├┌┬┐', '◢◣◤◥', '.oO°Oo.', '.oO@*', '🌍🌎🌏', '◡◡ ⊙⊙ ◠◠', '☱☲☴', '⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏', '⠋⠙⠚⠞⠖⠦⠴⠲⠳⠓', '⠄⠆⠇⠋⠙⠸⠰⠠⠰⠸⠙⠋⠇⠆', '⠋⠙⠚⠒⠂⠂⠒⠲⠴⠦⠖⠒⠐⠐⠒⠓⠋', '⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠴⠲⠒⠂⠂⠒⠚⠙⠉⠁', '⠈⠉⠋⠓⠒⠐⠐⠒⠖⠦⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈', '⠁⠁⠉⠙⠚⠒⠂⠂⠒⠲⠴⠤⠄⠄⠤⠠⠠⠤⠦⠖⠒⠐⠐⠒⠓⠋⠉⠈⠈', '⢄⢂⢁⡁⡈⡐⡠', '⢹⢺⢼⣸⣇⡧⡗⡏', '⣾⣽⣻⢿⡿⣟⣯⣷', '⠁⠂⠄⡀⢀⠠⠐⠈'];