UNPKG

@omni-door/utils

Version:

The utils of omni-door's projects

52 lines (51 loc) 1.79 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Spinner = void 0; var ora_1 = __importDefault(require("ora")); var chalk_1 = __importDefault(require("chalk")); var logPrefix_1 = __importDefault(require("./logPrefix")); var emoji_1 = require("./emoji"); var stateMapColor = { 'start': 'white', 'info': 'yellowBright', 'warn': 'yellow', 'fail': 'red', 'succeed': 'green', 'stop': 'gray' }; var Spinner = /** @class */ (function () { function Spinner() { this.spinner = ora_1.default(); this._state = 'start'; this.state = this.state.bind(this); this.text = this.text.bind(this); this.color = this.color.bind(this); this.prefix = this.prefix.bind(this); this._decorateText = this._decorateText.bind(this); } Spinner.prototype.state = function (state, text) { this._state = state; // initial spinner var color = chalk_1.default[stateMapColor[state]]; this.spinner[state](color(this._decorateText(text || ''))); }; Spinner.prototype._decorateText = function (text) { return logPrefix_1.default() + " " + text + " " + emoji_1.stateMap2Emoji[this._state] + "\n"; }; Spinner.prototype.text = function (text) { this.spinner.text = this._decorateText(text); }; Spinner.prototype.color = function (color) { this.spinner.color = color; }; Spinner.prototype.prefix = function (prefix) { this.spinner.spinner = prefix; }; return Spinner; }()); exports.Spinner = Spinner; var spinner = new Spinner(); exports.default = spinner;