From 0d9a64426e89e31ea948769ad35e508e6dfa20e1 Mon Sep 17 00:00:00 2001 From: chad Date: Wed, 23 Nov 2022 11:04:09 -0500 Subject: [PATCH] docs: updated typing for args handler (#1107) --- package.json | 1 + src/cmds/docs.js | 14 ++++++++------ src/docs.js | 3 +-- src/index.js | 2 ++ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index d2d845e11..fc1e32170 100644 --- a/package.json +++ b/package.json @@ -243,6 +243,7 @@ "execa": "^6.1.0", "extract-zip": "^2.0.1", "fs-extra": "^10.0.0", + "gh-pages": "^4.0.0", "globby": "^13.1.1", "it-glob": "^1.0.1", "kleur": "^4.1.4", diff --git a/src/cmds/docs.js b/src/cmds/docs.js index 90f1828df..f484656b7 100644 --- a/src/cmds/docs.js +++ b/src/cmds/docs.js @@ -1,23 +1,25 @@ import { loadUserConfig } from '../config/user.js' -import docs from '../docs.js' +import docsCmd from '../docs.js' /** * @typedef {import("yargs").Argv} Argv + * @typedef {import("yargs").ArgumentsCamelCase} Arguments + * @typedef {import("yargs").CommandModule} CommandModule */ const EPILOG = ` Typescript config file is required to generated docs. Try \`aegir ts --preset config > tsconfig.json\` ` - +/** @type {CommandModule} */ export default { command: 'docs', - desc: 'Generate documentation from TS type declarations.', + describe: 'Generate documentation from TS type declarations.', /** * @param {Argv} yargs */ builder: async (yargs) => { const userConfig = await loadUserConfig() - yargs + return yargs .epilog(EPILOG) .example('aegir docs', 'Build HTML documentation.') .example('aegir docs -p', 'Build HTML documentation and publish to Github Pages.') @@ -37,9 +39,9 @@ export default { }) }, /** - * @param {(import("../types").GlobalOptions & import("../types").DocsOptions) | undefined} argv + * @param {any} argv */ async handler (argv) { - await docs.run(argv) + await docsCmd.run(argv) } } diff --git a/src/docs.js b/src/docs.js index cce70e0d2..550b6acad 100644 --- a/src/docs.js +++ b/src/docs.js @@ -1,5 +1,5 @@ -import { hasTsconfig, fromAegir, fromRoot, readJson } from './utils' +import { hasTsconfig, fromAegir, fromRoot, readJson } from './utils.js' import Listr from 'listr' import kleur from 'kleur' import fs from 'fs-extra' @@ -9,7 +9,6 @@ import merge from 'merge-options' import { promisify } from 'util' import ghPages from 'gh-pages' import { premove as del } from 'premove/sync' -import resolve from '../utils/resolve.js' const publishPages = promisify(ghPages.publish) diff --git a/src/index.js b/src/index.js index 563732fbe..58ad999d7 100755 --- a/src/index.js +++ b/src/index.js @@ -16,6 +16,7 @@ import lintCmd from './cmds/lint.js' import releaseCmd from './cmds/release.js' import testDependantCmd from './cmds/test-dependant.js' import testCmd from './cmds/test.js' +import docsCmd from './cmds/docs.js' /** * @typedef {import('./types').BuildOptions} BuildOptions @@ -81,6 +82,7 @@ async function main () { res.command(checkProjectCmd) res.command(checkCmd) res.command(cleanCmd) + res.command(docsCmd) res.command(dependencyCheckCmd) res.command(lintPackageJsonCmd) res.command(lintCmd)