@jwpkg/gitversion
Version:
Gitversion is a complete customizable git-based release management system
126 lines • 10 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LogReporter = exports.SINGLE_LINE_CHAR = exports.CarotColor = void 0;
const colorize_node_1 = require("colorize-node");
const stream_1 = require("stream");
const format_utils_1 = require("./format-utils");
const log_reporter_platform_1 = require("./log-reporter-platform");
var CarotColor;
(function (CarotColor) {
CarotColor[CarotColor["White"] = 0] = "White";
CarotColor[CarotColor["Green"] = 1] = "Green";
CarotColor[CarotColor["Blue"] = 2] = "Blue";
CarotColor[CarotColor["Yellow"] = 3] = "Yellow";
CarotColor[CarotColor["Red"] = 4] = "Red";
})(CarotColor || (exports.CarotColor = CarotColor = {}));
exports.SINGLE_LINE_CHAR = '·';
class LogReporter {
options;
stdout;
level = 0;
indent = 0;
constructor(options) {
this.options = options;
this.stdout = this.options?.stdout ?? process.stdout;
if (options?.level) {
this.level = options.level;
this.indent = options.level;
}
}
runSectionSync(title, runner) {
const section = this.beginSection(title);
runner(this);
this.endSection(section);
}
async runSection(title, runner) {
let buffer = '';
const logger = new LogReporter({
level: this.level + 1,
stdout: new stream_1.Writable({
write: (chunk, _encoding, next) => {
buffer = buffer + chunk.toString();
next();
},
}),
});
await runner(logger);
const section = this.beginSection(title);
this.stdout.write(buffer);
this.endSection(section);
}
beginSection(title) {
this.level += 1;
this.reportInfo(`┌ ${title}`);
this.indent += 1;
if (log_reporter_platform_1.PLATFORM?.start && this.level <= 1) {
this.stdout.write(log_reporter_platform_1.PLATFORM.start(title));
}
return {
start: Date.now(),
title,
};
}
endSection({ title, start }) {
const duration = start ? Date.now() - start : 0;
if (log_reporter_platform_1.PLATFORM?.end) {
this.stdout.write(log_reporter_platform_1.PLATFORM.end(title));
}
this.indent -= 1;
if (duration > 200)
this.reportInfo(`└ Completed in ${(0, format_utils_1.formatDuration)(duration)}`);
else
this.reportInfo('└ Completed');
this.level -= 1;
}
reportHeader(message) {
this.writeLine(`${this.formatPrefix(CarotColor.White)}${colorize_node_1.colorize.bold(colorize_node_1.colorize.whiteBright(message))}`);
}
reportDryrun(message) {
this.writeLine(`${this.formatPrefix(CarotColor.Green)}${colorize_node_1.colorize.green('[DRY-RUN] ')}${message}`);
}
reportInfo(message) {
this.writeLine(`${this.formatPrefix(CarotColor.Blue)}${message}`);
}
reportWarning(message, important = false) {
this.writeLine(`${this.formatPrefix(CarotColor.Yellow)}${message}`);
if (important) {
log_reporter_platform_1.PLATFORM?.warning?.(message);
}
}
reportError(message, important = false) {
this.writeLine(`${this.formatPrefix(CarotColor.Red)}[ERROR] ${message}`);
if (important) {
log_reporter_platform_1.PLATFORM?.error?.(message);
}
}
formatPrefix(caretColor) {
let caret = '➤';
switch (caretColor) {
case CarotColor.White:
caret = colorize_node_1.colorize.whiteBright(caret);
break;
case CarotColor.Blue:
caret = colorize_node_1.colorize.blueBright(caret);
break;
case CarotColor.Green:
caret = colorize_node_1.colorize.greenBright(caret);
break;
case CarotColor.Red:
caret = colorize_node_1.colorize.redBright(caret);
break;
case CarotColor.Yellow:
caret = colorize_node_1.colorize.yellowBright(caret);
break;
}
return `${caret} ${this.formatIndent()}`;
}
formatIndent() {
return this.level > 0 ? '│ '.repeat(this.indent) : `${exports.SINGLE_LINE_CHAR} `;
}
writeLine(message) {
this.stdout.write(`${message}\n`);
}
}
exports.LogReporter = LogReporter;
// export const logger = new LogReporter();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLXJlcG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvbG9nLXJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUF5QztBQUN6QyxtQ0FBa0M7QUFFbEMsaURBQWdEO0FBQ2hELG1FQUFtRDtBQUtuRCxJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsNkNBQUssQ0FBQTtJQUNMLDZDQUFLLENBQUE7SUFDTCwyQ0FBSSxDQUFBO0lBQ0osK0NBQU0sQ0FBQTtJQUNOLHlDQUFHLENBQUE7QUFDTCxDQUFDLEVBTlcsVUFBVSwwQkFBVixVQUFVLFFBTXJCO0FBT1ksUUFBQSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFXcEMsTUFBYSxXQUFXO0lBSUY7SUFIcEIsTUFBTSxDQUFXO0lBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ1gsWUFBb0IsT0FBNEI7UUFBNUIsWUFBTyxHQUFQLE9BQU8sQ0FBcUI7UUFDOUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO1FBRXJELElBQUksT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYSxFQUFFLE1BQXlCO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsS0FBSyxDQUFDLFVB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