cli-loading-animation
Version:
Small library that combine cli-spinners and log-update to display a loading animation in CLI apps made with Node.
34 lines (33 loc) • 1.36 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.loading = void 0;
var cli_spinners_1 = __importDefault(require("cli-spinners"));
var log_update_1 = __importDefault(require("log-update"));
var DEFAULT_CONFIG = {
spinner: cli_spinners_1.default.dots,
clearOnEnd: true,
};
var loading = function (message, options) {
var intervalId;
var spinner = (options === null || options === void 0 ? void 0 : options.spinner) || DEFAULT_CONFIG.spinner;
var clearOnEnd = (options === null || options === void 0 ? void 0 : options.clearOnEnd) !== undefined ? options.clearOnEnd : DEFAULT_CONFIG.clearOnEnd;
var start = function () {
var _a = spinner, interval = _a.interval, frames = _a.frames;
var index = 0;
intervalId = setInterval(function () {
(0, log_update_1.default)("".concat(frames[(index = ++index % frames.length)], " ").concat(message).trim());
}, interval);
};
var stop = function () {
clearInterval(intervalId);
if (clearOnEnd) {
log_update_1.default.clear();
}
log_update_1.default.done();
};
return { start: start, stop: stop };
};
exports.loading = loading;