mirror of
https://github.com/danbulant/bpm
synced 2026-05-19 04:08:47 +00:00
91 lines
No EOL
2.4 KiB
JavaScript
91 lines
No EOL
2.4 KiB
JavaScript
var colors = {
|
|
Reset: "\x1b[0m",
|
|
Bright: "\x1b[1m",
|
|
Dim: "\x1b[2m",
|
|
Underscore: "\x1b[4m",
|
|
Blink: "\x1b[5m",
|
|
Reverse: "\x1b[7m",
|
|
Hidden: "\x1b[8m",
|
|
|
|
FgBlack: "\x1b[30m",
|
|
FgRed: "\x1b[31m",
|
|
FgGreen: "\x1b[32m",
|
|
FgYellow: "\x1b[33m",
|
|
FgBlue: "\x1b[34m",
|
|
FgMagenta: "\x1b[35m",
|
|
FgCyan: "\x1b[36m",
|
|
FgWhite: "\x1b[37m",
|
|
|
|
BgBlack: "\x1b[40m",
|
|
BgRed: "\x1b[41m",
|
|
BgGreen: "\x1b[42m",
|
|
BgYellow: "\x1b[43m",
|
|
BgBlue: "\x1b[44m",
|
|
BgMagenta: "\x1b[45m",
|
|
BgCyan: "\x1b[46m",
|
|
BgWhite: "\x1b[47m",
|
|
};
|
|
|
|
class CustomConsole {
|
|
colors = colors;
|
|
|
|
width = process.stdout.columns | 999;
|
|
height = process.stdout.rows | 999;
|
|
|
|
time(...args){
|
|
return console.time(...args);
|
|
}
|
|
timeEnd(...args){
|
|
return console.timeEnd(...args);
|
|
}
|
|
outputArray(arr, empty = "None") {
|
|
if(!Array.isArray(arr))throw Error("Cannot convert non-array to array");
|
|
|
|
if(!arr.length)return console.log(empty);
|
|
|
|
var maxWidth = 0;
|
|
arr.forEach(a => {
|
|
var stripped = a.replace(/\x1b\[[0-9]{1,2}m/gi, "");
|
|
if(stripped.length + 1 > maxWidth)maxWidth = stripped.length + 1;
|
|
});
|
|
|
|
var width = Math.floor(maxWidth / this.width);
|
|
var pt = 0;
|
|
var collumn = 0;
|
|
var lines = [];
|
|
arr.forEach(a => {
|
|
var stripped = a.replace(/\x1b\[[0-9]{1,2}m/gi, "");
|
|
if(lines[pt]){
|
|
lines[pt] += " " + a + " ".repeat(maxWidth - stripped.length);
|
|
} else {
|
|
lines[pt] = a + " ".repeat(maxWidth - stripped.length);
|
|
}
|
|
if(collumn > width){
|
|
collumn = 0;
|
|
pt++;
|
|
return;
|
|
}
|
|
collumn++;
|
|
});
|
|
|
|
//console.log(lines);
|
|
lines.forEach((a) => console.log(a));
|
|
}
|
|
output(...args) {
|
|
console.log(...args);
|
|
}
|
|
log(...args) {
|
|
console.log(colors.FgGreen + "BPM" + colors.Reset + colors.Bright + " LOG" + colors.Reset, ...args);
|
|
}
|
|
warn(...args) {
|
|
console.log(colors.FgGreen + "BPM" + colors.Reset + colors.Bright + colors.FgYellow + " WARN" + colors.Reset, ...args);
|
|
}
|
|
error(...args) {
|
|
console.log(colors.FgGreen + "BPM" + colors.Reset + colors.Bright + colors.FgRed + " ERROR" + colors.Reset, ...args);
|
|
}
|
|
err(...args) {
|
|
this.error(args);
|
|
}
|
|
}
|
|
|
|
module.exports = CustomConsole; |