@intlayer/config
Version:
Retrieve Intlayer configurations and manage environment variables for both server-side and client-side environments.
79 lines (77 loc) • 2.81 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_colors = require('../colors.cjs');
const require_utils_extractErrorMessage = require('../utils/extractErrorMessage.cjs');
const require_logger = require('../logger.cjs');
//#region src/bundle/logBundle.ts
var BundleLogger = class {
status = "pending";
spinnerTimer = null;
spinnerIndex = 0;
renderedLines = 0;
isFinished = false;
prefix;
lastRenderedState = "";
error;
constructor(configuration) {
this.prefix = require_logger.getPrefix(configuration?.log?.prefix) ?? "";
}
setStatus(status) {
if (this.isFinished) return;
this.status = status;
if (status === "success") this.finish();
else {
this.startSpinner();
this.render();
}
}
setError(error) {
if (this.isFinished) return;
this.status = "error";
this.error = require_utils_extractErrorMessage.extractErrorMessage(error);
this.finish();
}
startSpinner() {
if (this.spinnerTimer || this.isFinished) return;
this.spinnerTimer = setInterval(() => {
this.spinnerIndex = (this.spinnerIndex + 1) % require_logger.spinnerFrames.length;
this.render();
}, 100);
}
stopSpinner() {
if (!this.spinnerTimer) return;
clearInterval(this.spinnerTimer);
this.spinnerTimer = null;
}
finish() {
this.isFinished = true;
this.stopSpinner();
this.render();
}
render() {
const frame = require_logger.spinnerFrames[this.spinnerIndex];
const clock = require_logger.colorize(frame, require_colors.BLUE);
const lines = [];
if (this.status === "installing") lines.push(`${this.prefix} ${clock} Fetching and resolving packages...`);
else if (this.status === "bundling") {
lines.push(`${this.prefix} ${require_logger.v} Fetching and resolving packages...`);
lines.push(`${this.prefix} ${clock} Bundling application...`);
} else if (this.status === "success") {
lines.push(`${this.prefix} ${require_logger.v} Fetching and resolving packages...`);
lines.push(`${this.prefix} ${require_logger.v} Bundling application...`);
} else if (this.status === "error") lines.push(`${this.prefix} ${require_logger.x} Bundle failed: ${require_logger.colorize(this.error ?? "Unknown error", require_colors.RED)}`);
const currentState = lines.join("\n");
if (currentState === this.lastRenderedState) return;
this.lastRenderedState = currentState;
if (this.renderedLines > 0) process.stdout.write(`\x1b[${this.renderedLines}F`);
const totalLinesToClear = Math.max(this.renderedLines, lines.length);
for (let i = 0; i < totalLinesToClear; i++) {
process.stdout.write("\x1B[2K");
if (lines[i] !== void 0) process.stdout.write(lines[i]);
process.stdout.write("\n");
}
this.renderedLines = lines.length;
}
};
//#endregion
exports.BundleLogger = BundleLogger;
//# sourceMappingURL=logBundle.cjs.map