UNPKG

dop-stick

Version:

Source control tooling for versionable-upgradeable smart contracts

48 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeploymentProgress = void 0; const terminal_1 = require("./logsAndMetrics/core/terminal"); class DeploymentProgress { constructor() { this.startTime = 0; this.spinner = null; this.currentStep = ''; } start(initialStep) { this.startTime = Date.now(); this.currentStep = initialStep; this.startSpinner(); } update(step) { this.currentStep = step; } complete(message) { this.stopSpinner(); const duration = ((Date.now() - this.startTime) / 1000).toFixed(2); terminal_1.Terminal.writeLine(`\n✓ ${message} (${duration}s)`); } fail(message) { this.stopSpinner(); terminal_1.Terminal.writeLine(`\n✗ ${message}`); } startSpinner() { const frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']; let i = 0; this.spinner = setInterval(() => { const frame = frames[i = ++i % frames.length]; terminal_1.Terminal.eraseLine(); terminal_1.Terminal.cursorTo(0); terminal_1.Terminal.write(`${frame} ${this.currentStep}`); }, 80); } stopSpinner() { if (this.spinner) { clearInterval(this.spinner); this.spinner = null; terminal_1.Terminal.eraseLine(); terminal_1.Terminal.cursorTo(0); } } } exports.DeploymentProgress = DeploymentProgress; //# sourceMappingURL=deploymentProgress.js.map