UNPKG

@serverless-devs/s-progress-bar

Version:

Serverless Devs Tool Core Component

153 lines 10.5 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProgressService = exports.ProgressType = void 0; var MyProgressBar = __importStar(require("progress")); var _a = require('chalk'), green = _a.green, white = _a.white; var ProgressBar = MyProgressBar.default ? MyProgressBar.default : MyProgressBar; var ProgressType; (function (ProgressType) { ProgressType[ProgressType["Bar"] = 0] = "Bar"; ProgressType[ProgressType["Loading"] = 1] = "Loading"; })(ProgressType = exports.ProgressType || (exports.ProgressType = {})); var DEFAULT_BAR_FORMAT = "downloading " + green(':loading') + " ((:bar)) :current/:total(Bytes) :percent :etas"; var DEFAULT_LOADING_FORMAT = green(':loading') + " ((:bar))"; var ProgressService = /** @class */ (function () { /** * @param type, Bar: a progress bar with total size known, Loading: a loading style with unknown total size * @param format, format of progress bar * @param options, options of progress bar, with type Loading, just set {width:50, total:100} */ function ProgressService(type, options, format) { this.type = type; this.options = options; var opts = ProgressService.initProgressBarOptions(type, options); var fmt = ProgressService.initFormat(type, format); this.progressType = type; // init backward for loading type this.backward = false; // @ts-ignore var pb = new ProgressBar(fmt, opts); var loadingChars = ['⣴', '⣆', '⢻', '⢪', '⢫']; // set tick callback with loading chars var oldTick = pb.tick; // @ts-ignore pb.tick = function (len, tokens) { var newTokens = Object.assign({ loading: loadingChars[parseInt(String(Math.random() * 5))], }, tokens); // console.log(newTokens); oldTick.call(pb, len, newTokens); }; this.bar = pb; } ProgressService.initFormat = function (type, format) { if (!format) { if (type === ProgressType.Bar) { format = DEFAULT_BAR_FORMAT; } else if (type === ProgressType.Loading) { format = DEFAULT_LOADING_FORMAT; } } return format; }; ProgressService.initProgressBarOptions = function (type, options) { if (!options.width) { options.width = 30; } if (!options.complete) { if (type === ProgressType.Loading) { options.complete = green('█'); } else { options.complete = green('█'); } } if (!options.incomplete) { if (type === ProgressType.Loading) { options.incomplete = '░'; } else { options.incomplete = white('░'); } } if (!options.clear) { options.clear = true; } return options; }; /** * update progress status * @param currentTransferred, when progress type is bar, increase progress ticks with */ ProgressService.prototype.update = function (currentTransferred) { if (this.progressType === ProgressType.Bar) { if (!currentTransferred) { // warning, update bar with empty transferred tick. return; } this.updateBarType(currentTransferred); } else if (this.progressType === ProgressType.Loading) { this.updateLoadingType(); } }; ProgressService.prototype.updateBarType = function (currentTransferred) { var increment = currentTransferred - this.bar.curr; this.bar.tick(increment); }; ProgressService.prototype.updateLoadingType = function () { if (!this.backward && this.bar.curr === this.bar.total) { this.backward = true; } else if (this.backward && this.bar.curr === 0) { this.backward = false; } if (this.backward) { this.bar.tick(0); } else { this.bar.tick(0); } }; ProgressService.prototype.terminate = function () { this.bar.terminate(); }; ProgressService.prototype.complete = function () { return this.bar.complete; }; ProgressService.prototype.curr = function () { return this.bar.curr; }; ProgressService.prototype.total = function () { return this.bar.total; }; /** * "interrupt" the progress bar and write a message above it. */ ProgressService.prototype.interrupt = function (message) { this.bar.interrupt(message); }; return ProgressService; }()); exports.ProgressService = ProgressService; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUEwQztBQUVwQyxJQUFBLEtBQW1CLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBakMsS0FBSyxXQUFBLEVBQUUsS0FBSyxXQUFxQixDQUFDO0FBRTFDLElBQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztBQUVsRixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDdEIsNkNBQUcsQ0FBQTtJQUNILHFEQUFPLENBQUE7QUFDVCxDQUFDLEVBSFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFHdkI7QUFzREQsSUFBTSxrQkFBa0IsR0FBRyxpQkFBZSxLQUFLLENBQzdDLFVBQVUsQ0FDWCxvREFBaUQsQ0FBQztBQUNuRCxJQUFNLHNCQUFzQixHQUFNLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBVyxDQUFDO0FBRS9EO0lBS0U7Ozs7T0FJRztJQUNILHlCQUNxQixJQUFrQixFQUNsQixPQUEyQixFQUM5QyxNQUFlO1FBRkksU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUc5QyxJQUFNLElBQUksR0FBRyxlQUFlLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLElBQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLGlDQUFpQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixhQUFhO1FBQ2IsSUFBTSxFQUFFLEdBQUcsSUFBSSxXQUFXLENB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