Skip to content

Commit

Permalink
Chore: Upgrade eslint-plugin-jsdoc to v25
Browse files Browse the repository at this point in the history
This is a Chore instead of an Upgrade because it's in `devDependencies`.
v25 is the first release of `eslint-plugin-jsdoc` to bump the `eslint`
peer dependency to allow `eslint@7`. Once it's upgraded, we won't have
to use `--legacy-peer-deps` to install dependencies with npm v7. The
newer version was unsatisfied with the `cliOptions` param to
`translateOptions` typed as just `Object`, so I turned our Optionator
config into a JSDoc typedef.
  • Loading branch information
btmills committed Mar 23, 2021
1 parent 8984c91 commit 258eb49
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 2 deletions.
5 changes: 4 additions & 1 deletion lib/cli.js
Expand Up @@ -32,6 +32,7 @@ const debug = require("debug")("eslint:cli");
/** @typedef {import("./eslint/eslint").ESLintOptions} ESLintOptions */
/** @typedef {import("./eslint/eslint").LintMessage} LintMessage */
/** @typedef {import("./eslint/eslint").LintResult} LintResult */
/** @typedef {import("./options").ParsedCLIOptions} ParsedCLIOptions */

//------------------------------------------------------------------------------
// Helpers
Expand All @@ -54,7 +55,7 @@ function quietFixPredicate(message) {

/**
* Translates the CLI options into the options expected by the CLIEngine.
* @param {Object} cliOptions The CLI options to translate.
* @param {ParsedCLIOptions} cliOptions The CLI options to translate.
* @returns {ESLintOptions} The options object for the CLIEngine.
* @private
*/
Expand Down Expand Up @@ -221,6 +222,8 @@ const cli = {
if (Array.isArray(args)) {
debug("CLI args: %o", args.slice(2));
}

/** @type {ParsedCLIOptions} */
let options;

try {
Expand Down
46 changes: 46 additions & 0 deletions lib/options.js
Expand Up @@ -11,6 +11,52 @@

const optionator = require("optionator");

//------------------------------------------------------------------------------
// Typedefs
//------------------------------------------------------------------------------

/**
* The options object parsed by Optionator.
* @typedef {Object} CLIOptions
* @property {boolean} cache Only check changed files
* @property {string} cacheFile Path to the cache file. Deprecated: use --cache-location
* @property {string} [cacheLocation] Path to the cache file or directory
* @property {"metadata" | "content"} cacheStrategy Strategy to use for detecting changed files in the cache
* @property {boolean} [color] Force enabling/disabling of color
* @property {string} [config] Use this configuration, overriding .eslintrc.* config options if present
* @property {boolean} debug Output debugging information
* @property {string[]} [env] Specify environments
* @property {boolean} envInfo Output execution environment information
* @property {boolean} errorOnUnmatchedPattern Prevent errors when pattern is unmatched
* @property {boolean} [eslintrc] Disable use of configuration from .eslintrc.*
* @property {string[]} [ext] Specify JavaScript file extensions
* @property {boolean} fix Automatically fix problems
* @property {boolean} fixDryRun Automatically fix problems without saving the changes to the file system
* @property {("problem" | "suggestion" | "layout")[]} fixType Specify the types of fixes to apply (problem, suggestion, layout)
* @property {string} format Use a specific output format
* @property {string[]} [global] Define global variables
* @property {boolean} [help] Show help
* @property {boolean} ignore Disable use of ignore files and patterns
* @property {string} [ignorePath] Specify path of ignore file
* @property {string[]} [ignorePattern] Pattern of files to ignore (in addition to those in .eslintignore)
* @property {boolean} init Run config initialization wizard
* @property {boolean} [inlineConfig] Prevent comments from changing config or rules
* @property {number} maxWarnings Number of warnings to trigger nonzero exit code
* @property {string} [outputFile] Specify file to write report to
* @property {string} [parser] Specify the parser to be used
* @property {Object} [parserOptions] Specify parser options
* @property {string[]} [plugin] Specify plugins
* @property {string} [printConfig] Print the configuration for the given file
* @property {boolean | undefined} reportUnusedDisableDirectives Adds reported errors for unused eslint-disable directives
* @property {string} [resolvePluginsRelativeTo] A folder where plugins should be resolved from, CWD by default
* @property {Object} [rule] Specify rules
* @property {string[]} [rulesdir] Use additional rules from this directory
* @property {boolean} stdin Lint code provided on <STDIN>
* @property {string} [stdinFilename] Specify filename to process STDIN as
* @property {boolean} [quiet] Report errors only
* @property {boolean} [version] Output the version number
*/

//------------------------------------------------------------------------------
// Initialization and Public Interface
//------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -100,7 +100,7 @@
"eslint-config-eslint": "file:packages/eslint-config-eslint",
"eslint-plugin-eslint-plugin": "^2.2.1",
"eslint-plugin-internal-rules": "file:tools/internal-rules",
"eslint-plugin-jsdoc": "^22.1.0",
"eslint-plugin-jsdoc": "^25.4.3",
"eslint-plugin-node": "^11.1.0",
"eslint-release": "^2.0.0",
"eslump": "^2.0.0",
Expand Down

0 comments on commit 258eb49

Please sign in to comment.