diff --git a/.eslintrc.json b/.eslintrc.json index 48e9775e..0667204f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -71,9 +71,13 @@ "jsdoc/check-examples": "error", "jsdoc/check-indentation": "error", + "jsdoc/check-line-alignment": "error", "jsdoc/check-syntax": "error", "jsdoc/match-description": "error", + "jsdoc/no-bad-blocks": "error", + "jsdoc/no-defaults": "error", "jsdoc/require-description": "error", + "jsdoc/require-description-complete-sentence": "error", "node/handle-callback-err": "error", "node/no-callback-literal": "error", @@ -127,6 +131,7 @@ "unicorn/explicit-length-check": "error", "unicorn/filename-case": "off", "unicorn/import-index": "error", + "unicorn/import-style": "error", "unicorn/new-for-builtins": "error", "unicorn/no-abusive-eslint-disable": "error", "unicorn/no-array-instanceof": "error", @@ -147,12 +152,14 @@ "unicorn/no-useless-undefined": "error", "unicorn/no-zero-fractions": "error", "unicorn/number-literal-case": "error", + "unicorn/numeric-separators-style": "error", "unicorn/prefer-add-event-listener": "error", "unicorn/prefer-array-find": "error", "unicorn/prefer-dataset": "error", "unicorn/prefer-event-key": "error", "unicorn/prefer-flat-map": "error", "unicorn/prefer-includes": "error", + "unicorn/prefer-math-trunc": "error", "unicorn/prefer-modern-dom-apis": "error", "unicorn/prefer-negative-index": "error", "unicorn/prefer-node-append": "error", @@ -166,6 +173,7 @@ "unicorn/prefer-spread": "error", "unicorn/prefer-starts-ends-with": "error", "unicorn/prefer-string-slice": "off", + "unicorn/prefer-ternary": "error", "unicorn/prefer-text-content": "error", "unicorn/prefer-trim-start-end": "off", "unicorn/prefer-type-error": "error", diff --git a/demo/markdown-it-stub.js b/demo/markdown-it-stub.js index 5b6facbf..e4e489d4 100644 --- a/demo/markdown-it-stub.js +++ b/demo/markdown-it-stub.js @@ -7,6 +7,7 @@ if (!module.exports) { } // Stub missing implementation of util.promisify (unused here) +// eslint-disable-next-line unicorn/import-style var util = require("util"); if (!util.promisify) { util.promisify = function promisify(fn) { diff --git a/lib/markdownlint.js b/lib/markdownlint.js index b881e03f..d87505f3 100644 --- a/lib/markdownlint.js +++ b/lib/markdownlint.js @@ -4,7 +4,7 @@ const fs = require("fs"); const path = require("path"); -const util = require("util"); +const { promisify } = require("util"); const markdownIt = require("markdown-it"); const rules = require("./rules"); const helpers = require("../helpers"); @@ -459,8 +459,8 @@ function uniqueFilterForSortedErrors(value, index, array) { * * @param {Rule[]} ruleList List of rules. * @param {string} name Identifier for the content. - * @param {string} content Markdown content - * @param {Object} md markdown-it instance. + * @param {string} content Markdown content. + * @param {Object} md Instance of markdown-it. * @param {Configuration} config Configuration object. * @param {RegExp} frontMatter Regular expression for front matter. * @param {boolean} handleRuleFailures Whether to handle exceptions in rules. @@ -671,7 +671,7 @@ function lintContent( * * @param {Rule[]} ruleList List of rules. * @param {string} file Path of file to lint. - * @param {Object} md markdown-it instance. + * @param {Object} md Instance of markdown-it. * @param {Configuration} config Configuration object. * @param {RegExp} frontMatter Regular expression for front matter. * @param {boolean} handleRuleFailures Whether to handle exceptions in rules. @@ -853,7 +853,7 @@ function markdownlint(options, callback) { return lintInput(options, false, callback); } -const markdownlintPromisify = util.promisify(markdownlint); +const markdownlintPromisify = promisify(markdownlint); /** * Lint specified Markdown files. @@ -985,7 +985,7 @@ function readConfig(file, parsers, callback) { }); } -const readConfigPromisify = util.promisify(readConfig); +const readConfigPromisify = promisify(readConfig); /** * Read specified configuration file. @@ -1064,7 +1064,7 @@ module.exports = markdownlint; * * @typedef {Object} RuleParams * @property {string} name File/string name. - * @property {MarkdownItToken[]} tokens markdown-it token objects. + * @property {MarkdownItToken[]} tokens Token objects from markdown-it. * @property {string[]} lines File/string lines. * @property {string[]} frontMatterLines Front matter lines. * @property {RuleConfiguration} config Rule configuration. @@ -1147,7 +1147,7 @@ module.exports = markdownlint; */ /** - * markdown-it plugin. + * A markdown-it plugin. * * @typedef {Array} Plugin */ diff --git a/package.json b/package.json index 656c1ab7..769c74a7 100644 --- a/package.json +++ b/package.json @@ -36,14 +36,14 @@ "markdown-it": "12.0.2" }, "devDependencies": { - "@types/node": "~14.6.4", - "browserify": "~16.5.2", - "c8": "~7.3.0", + "@types/node": "~14.14.9", + "browserify": "~17.0.0", + "c8": "~7.3.5", "cpy-cli": "~3.1.1", - "eslint": "~7.8.1", - "eslint-plugin-jsdoc": "~30.3.1", + "eslint": "~7.14.0", + "eslint-plugin-jsdoc": "~30.7.8", "eslint-plugin-node": "~11.1.0", - "eslint-plugin-unicorn": "~21.0.0", + "eslint-plugin-unicorn": "~23.0.0", "globby": "~11.0.1", "js-yaml": "~3.14.0", "make-dir-cli": "~2.0.0", @@ -51,15 +51,15 @@ "markdown-it-sub": "~1.0.0", "markdown-it-sup": "~1.0.0", "markdown-it-texmath": "~0.8.0", - "markdownlint-rule-helpers": "~0.11.0", + "markdownlint-rule-helpers": "~0.12.0", "rimraf": "~3.0.2", "strip-json-comments": "~3.1.1", "tape": "~5.0.1", "tape-player": "~0.1.1", "toml": "~3.0.0", "tv4": "~1.3.0", - "typescript": "~4.0.2", - "uglify-js": "~3.10.3" + "typescript": "~4.1.2", + "uglify-js": "~3.12.0" }, "keywords": [ "markdown", diff --git a/test/markdownlint-test-repos.js b/test/markdownlint-test-repos.js index 4c283c1b..b8327084 100644 --- a/test/markdownlint-test-repos.js +++ b/test/markdownlint-test-repos.js @@ -3,6 +3,7 @@ "use strict"; const { existsSync } = require("fs"); +// eslint-disable-next-line unicorn/import-style const { join } = require("path"); const { promisify } = require("util"); const globby = require("globby");