Home / Function/ printHelp() — astro Function Reference

printHelp() — astro Function Reference

Architecture documentation for the printHelp() function in messages.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  35257cda_684b_7921_604a_ded460d84474["printHelp()"]
  7e47cce3_632a_b102_4402_d13baf44fc8e["messages.ts"]
  35257cda_684b_7921_604a_ded460d84474 -->|defined in| 7e47cce3_632a_b102_4402_d13baf44fc8e
  96c4797b_5178_0a86_1cd5_afa604def56a["title()"]
  35257cda_684b_7921_604a_ded460d84474 -->|calls| 96c4797b_5178_0a86_1cd5_afa604def56a
  325f265a_a84d_6afa_c4c9_7a8631d25cd0["log()"]
  35257cda_684b_7921_604a_ded460d84474 -->|calls| 325f265a_a84d_6afa_c4c9_7a8631d25cd0
  style 35257cda_684b_7921_604a_ded460d84474 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/create-astro/src/messages.ts lines 139–198

export function printHelp({
	commandName,
	headline,
	usage,
	tables,
	description,
}: {
	commandName: string;
	headline?: string;
	usage?: string;
	tables?: Record<string, [command: string, help: string][]>;
	description?: string;
}) {
	const linebreak = () => '';
	const table = (rows: [string, string][], { padding }: { padding: number }) => {
		const split = stdout.columns < 60;
		let raw = '';

		for (const row of rows) {
			if (split) {
				raw += `    ${row[0]}\n    `;
			} else {
				raw += `${`${row[0]}`.padStart(padding)}`;
			}
			raw += '  ' + color.dim(row[1]) + '\n';
		}

		return raw.slice(0, -1); // remove latest \n
	};

	let message = [];

	if (headline) {
		message.push(
			linebreak(),
			`${title(commandName)} ${color.green(`v${process.env.PACKAGE_VERSION ?? ''}`)} ${headline}`,
		);
	}

	if (usage) {
		message.push(linebreak(), `${color.green(commandName)} ${color.bold(usage)}`);
	}

	if (tables) {
		function calculateTablePadding(rows: [string, string][]) {
			return rows.reduce((val, [first]) => Math.max(val, first.length), 0);
		}
		const tableEntries = Object.entries(tables);
		const padding = Math.max(...tableEntries.map(([, rows]) => calculateTablePadding(rows)));
		for (const [, tableRows] of tableEntries) {
			message.push(linebreak(), table(tableRows, { padding }));
		}
	}

	if (description) {
		message.push(linebreak(), `${description}`);
	}

	log(message.join('\n') + '\n');
}

Domain

Subdomains

Calls

Frequently Asked Questions

What does printHelp() do?
printHelp() is a function in the astro codebase, defined in packages/create-astro/src/messages.ts.
Where is printHelp() defined?
printHelp() is defined in packages/create-astro/src/messages.ts at line 139.
What does printHelp() call?
printHelp() calls 2 function(s): log, title.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free