UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

69 lines 2.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProgressShower = void 0; const instruments_1 = require("@k8ts/instruments"); const ora_1 = __importDefault(require("ora")); const promises_1 = require("timers/promises"); const stage_1 = require("./stage"); function typedOnAny(target, handler) { return target.onAny((name, ev) => { return handler({ ...ev, type: name }); }); } class ProgressShower { _options; constructor(_options) { this._options = _options; } async visualize(events) { const spinner = (0, ora_1.default)({ spinner: "dots", text: "K8ts is getting ready..." }); spinner.text = "abc"; let filesWritten = 0; let lastStage = "start"; const unsub = typedOnAny(events, async (event) => { switch (event.type) { case "load": spinner.text = (0, instruments_1.pretty) `${(0, instruments_1.verb)("Load")} ${(0, instruments_1.attr)(event.isExported ? "exported" : "")} ${event.resource} `; break; case "stage": if (event.stage !== "done") { return; } spinner.text = (0, instruments_1.pretty) `${(0, stage_1.stage)(event.stage)}`; break; case "received-file": spinner.text = (0, instruments_1.pretty) `${(0, instruments_1.verb)("Receive")} ${event.file}`; break; case "serialize": const rsc = instruments_1.ManifestSourceEmbedder.get(event.manifest); spinner.text = (0, instruments_1.pretty) `${(0, instruments_1.verb)("Serialize")} ${rsc}`; break; case "save": spinner.text = (0, instruments_1.pretty) `${(0, instruments_1.verb)("Save")} ${(0, instruments_1.dest)(event.filename)} (${(0, instruments_1.quantity)(event.bytes, "byte")})`; break; case "manifest": spinner.text = (0, instruments_1.pretty) `${(0, instruments_1.verb)("Manifest")} ${event.resource}`; break; case "purge": spinner.text = (0, instruments_1.pretty) `${(0, instruments_1.verb)("Purge")} ${(0, instruments_1.dest)(event.outdir)}`; break; } if (this._options.waitTransition) { await (0, promises_1.setTimeout)(this._options.waitTransition); } spinner.render(); if (this._options.debug) { console.log(); } }); spinner.render(); } } exports.ProgressShower = ProgressShower; //# sourceMappingURL=progress-shower.js.map