@solarity/hardhat-markup
Version:
Customizable markdown documentation for smart contracts
32 lines (23 loc) • 1.13 kB
text/typescript
import type { NewTaskActionFunction } from "hardhat/types/tasks";
import { HardhatPluginError } from "@nomicfoundation/hardhat-errors";
import { PLUGIN_ID } from "../../../constants.js";
import { Generator } from "../../../generator/Generator.js";
import type { DlMarkupArgs } from "./types.js";
const markupAction: NewTaskActionFunction<DlMarkupArgs> = async ({ outdir, noCompile, markupVerbose }, hre) => {
hre.config.markup.outdir = outdir === undefined ? hre.config.markup.outdir : outdir;
hre.config.markup.noCompile = !noCompile ? hre.config.markup.noCompile : noCompile;
hre.config.markup.verbose = !markupVerbose ? hre.config.markup.verbose : markupVerbose;
if (!hre.config.markup.noCompile) {
await hre.tasks.getTask("compile").run({
quiet: true,
defaultBuildProfile: "production",
});
}
try {
const contracts = await new Generator(hre).generate();
console.log(`\nGenerated markups for ${contracts.length} contracts`);
} catch (e: any) {
throw new HardhatPluginError(PLUGIN_ID, `Failed to generate markups: ${e.message}`, e);
}
};
export default markupAction;