Initial commit
This commit is contained in:
71
node_modules/astro/dist/cli/infra/logger-help-display.js
generated
vendored
Normal file
71
node_modules/astro/dist/cli/infra/logger-help-display.js
generated
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
import { formatVersion } from "../utils/format-version.js";
|
||||
class LoggerHelpDisplay {
|
||||
#logger;
|
||||
#textStyler;
|
||||
#astroVersionProvider;
|
||||
// TODO: find something better
|
||||
#flags;
|
||||
constructor({
|
||||
logger,
|
||||
textStyler,
|
||||
astroVersionProvider,
|
||||
flags
|
||||
}) {
|
||||
this.#logger = logger;
|
||||
this.#textStyler = textStyler;
|
||||
this.#astroVersionProvider = astroVersionProvider;
|
||||
this.#flags = flags;
|
||||
}
|
||||
shouldFire() {
|
||||
return !!(this.#flags.help || this.#flags.h);
|
||||
}
|
||||
show({ commandName, description, headline, tables, usage }) {
|
||||
const linebreak = () => "";
|
||||
const title = (label) => ` ${this.#textStyler.bgWhite(this.#textStyler.black(` ${label} `))}`;
|
||||
const table = (rows, { padding }) => {
|
||||
const split = process.stdout.columns < 60;
|
||||
let raw = "";
|
||||
for (const row of rows) {
|
||||
if (split) {
|
||||
raw += ` ${row[0]}
|
||||
`;
|
||||
} else {
|
||||
raw += `${`${row[0]}`.padStart(padding)}`;
|
||||
}
|
||||
raw += " " + this.#textStyler.dim(row[1]) + "\n";
|
||||
}
|
||||
return raw.slice(0, -1);
|
||||
};
|
||||
let message = [];
|
||||
if (headline) {
|
||||
message.push(
|
||||
linebreak(),
|
||||
`${formatVersion({ name: commandName, textStyler: this.#textStyler, astroVersionProvider: this.#astroVersionProvider })} ${headline}`
|
||||
);
|
||||
}
|
||||
if (usage) {
|
||||
message.push(
|
||||
linebreak(),
|
||||
` ${this.#textStyler.green(commandName)} ${this.#textStyler.bold(usage)}`
|
||||
);
|
||||
}
|
||||
if (tables) {
|
||||
let calculateTablePadding2 = function(rows) {
|
||||
return rows.reduce((val, [first]) => Math.max(val, first.length), 0) + 2;
|
||||
};
|
||||
var calculateTablePadding = calculateTablePadding2;
|
||||
const tableEntries = Object.entries(tables);
|
||||
const padding = Math.max(...tableEntries.map(([, rows]) => calculateTablePadding2(rows)));
|
||||
for (const [tableTitle, tableRows] of tableEntries) {
|
||||
message.push(linebreak(), title(tableTitle), table(tableRows, { padding }));
|
||||
}
|
||||
}
|
||||
if (description) {
|
||||
message.push(linebreak(), `${description}`);
|
||||
}
|
||||
this.#logger.info("SKIP_FORMAT", message.join("\n") + "\n");
|
||||
}
|
||||
}
|
||||
export {
|
||||
LoggerHelpDisplay
|
||||
};
|
||||
Reference in New Issue
Block a user