@solarity/hardhat-markup
Version:
Customizable markdown smart contracts documentation
48 lines • 2.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Generator_1 = require("./generator/Generator");
const task_names_1 = require("hardhat/builtin-tasks/task-names");
const config_1 = require("hardhat/config");
const plugins_1 = require("hardhat/plugins");
const config_2 = require("./config");
const constants_1 = require("./constants");
require("./type-extensions");
(0, config_1.extendConfig)(config_2.getDefaultMarkupConfig);
const markup = async ({ outdir, markupVerbose, noCompile }, 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.run(task_names_1.TASK_COMPILE);
}
try {
const contracts = await new Generator_1.Generator(hre).generate();
console.log(`\nGenerated markups for ${contracts.length} contracts`);
}
catch (e) {
throw new plugins_1.NomicLabsHardhatPluginError(constants_1.pluginName, e.message);
}
};
(0, config_1.task)(constants_1.TASK_MARKUP, "Generate markups for compiled contracts")
.addOptionalParam("outdir", "Output directory for generated markups", undefined, config_1.types.string)
.addFlag("noCompile", "Disables contract compilation before generation")
.addFlag("markupVerbose", "Enables Hardhat-markup verbose logging")
.setAction(markup);
(0, config_1.task)(task_names_1.TASK_COMPILE).setAction(async function (args, hre, runSuper) {
for (let compiler of hre.config.solidity.compilers) {
compiler.settings.outputSelection["*"]["*"].push("devdoc");
compiler.settings.outputSelection["*"]["*"].push("userdoc");
}
await runSuper();
});
(0, config_1.task)(task_names_1.TASK_CLEAN, "Clears the cache and deletes all artifacts").setAction(async ({ global }, hre, runSuper) => {
if (!global)
try {
await new Generator_1.Generator(hre).clean();
}
catch (e) {
throw new plugins_1.NomicLabsHardhatPluginError(constants_1.pluginName, e.message);
}
await runSuper();
});
//# sourceMappingURL=index.js.map