dop-stick
Version:
Source control tooling for versionable-upgradeable smart contracts
48 lines • 1.58 kB
JavaScript
;
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