UNPKG

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
"use strict"; 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;