hardhat
Version:
Hardhat is an extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.
37 lines • 1.78 kB
JavaScript
import { GLOBAL_NAME_PADDING, parseOptions, getLongestNameLength, getSection, parseSubtasks, getUsageString, parseGlobalOptions, } from "./utils.js";
export async function getHelpString(task, globalOptionDefinitions) {
const { default: chalk } = await import("chalk");
const { options, positionalArguments } = parseOptions(task);
const subtasks = parseSubtasks(task);
const globalOptions = parseGlobalOptions(globalOptionDefinitions);
const namePadding = getLongestNameLength([
...options,
...positionalArguments,
...subtasks,
...globalOptions,
]) + GLOBAL_NAME_PADDING;
let output = `${chalk.bold(task.description)}`;
if (task.isEmpty) {
output += `\n\nUsage: hardhat [GLOBAL OPTIONS] ${task.id.join(" ")} <SUBTASK> [SUBTASK OPTIONS] [--] [SUBTASK POSITIONAL ARGUMENTS]\n`;
if (subtasks.length > 0) {
output += getSection("AVAILABLE SUBTASKS", subtasks, namePadding);
output += getSection("GLOBAL OPTIONS", globalOptions, namePadding);
output += `\nTo get help for a specific task run: npx hardhat ${task.id.join(" ")} <SUBTASK> --help`;
}
return output;
}
const usage = getUsageString(task, options, positionalArguments);
output += `\n\n${usage}\n`;
if (options.length > 0) {
output += getSection("OPTIONS", options, namePadding);
}
if (positionalArguments.length > 0) {
output += getSection("POSITIONAL ARGUMENTS", positionalArguments, namePadding);
}
if (subtasks.length > 0) {
output += getSection("AVAILABLE SUBTASKS", subtasks, namePadding);
}
output += getSection("GLOBAL OPTIONS", globalOptions, namePadding);
return output;
}
//# sourceMappingURL=get-help-string.js.map