diff --git a/.eslintrc.js b/.eslintrc.js index a018f2a4..3ba070f9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -9,8 +9,8 @@ module.exports = { "root": true, - "plugins": ["node", "header"], - "extends": ["eslint:recommended", "plugin:node/recommended"], + "plugins": ["node", "header", "jsdoc"], + "extends": ["eslint:recommended", "plugin:node/recommended", "plugin:jsdoc/recommended"], "env": { "node": true, "es6": true, @@ -49,7 +49,12 @@ module.exports = { "after": true }], "no-console": "off", - "valid-jsdoc": ["error", { "requireParamDescription": false, "requireReturnDescription": false }], + "jsdoc/require-jsdoc": "off", + "jsdoc/require-param-description": "off", + "jsdoc/require-property-description": "off", + "jsdoc/require-returns-description": "off", + // We use typescript-like literal `false` for some signatures, which is not yet supported natively by eslint-plugin-jsdoc + "jsdoc/no-undefined-types": ["error", { definedTypes: ["false"] }], "node/no-unsupported-features": ["error", { version: 8 }], "node/no-deprecated-api": "error", "node/no-missing-import": "error", @@ -66,6 +71,11 @@ module.exports = { "node/process-exit-as-throw": "error", "header/header": [2, "block", { "pattern": "This file is part of the Symfony Webpack Encore package" }] }, + "settings": { + "jsdoc": { + "mode": "typescript" + } + }, "overrides": [ { "files": [".eslintrc.js"], diff --git a/index.js b/index.js index 2c34f66b..82048f59 100644 --- a/index.js +++ b/index.js @@ -114,7 +114,7 @@ class Encore { * }) * ``` * - * @param {function} definePluginOptionsCallback + * @param {Function} definePluginOptionsCallback * @returns {Encore} */ configureDefinePlugin(definePluginOptionsCallback = () => {}) { @@ -135,7 +135,7 @@ class Encore { * }) * ``` * - * @param {function} friendlyErrorsPluginOptionsCallback + * @param {Function} friendlyErrorsPluginOptionsCallback * @returns {Encore} */ configureFriendlyErrorsPlugin(friendlyErrorsPluginOptionsCallback = () => {}) { @@ -156,7 +156,7 @@ class Encore { * }) * ``` * - * @param {function} manifestPluginOptionsCallback + * @param {Function} manifestPluginOptionsCallback * @returns {Encore} */ configureManifestPlugin(manifestPluginOptionsCallback = () => {}) { @@ -182,7 +182,7 @@ class Encore { * }) * ``` * - * @param {function} terserPluginOptionsCallback + * @param {Function} terserPluginOptionsCallback * @returns {Encore} */ configureTerserPlugin(terserPluginOptionsCallback = () => {}) { @@ -203,7 +203,7 @@ class Encore { * }) * ``` * - * @param {function} cssMinimizerPluginOptionsCallback + * @param {Function} cssMinimizerPluginOptionsCallback * @returns {Encore} */ configureCssMinimizerPlugin(cssMinimizerPluginOptionsCallback = () => {}) { @@ -347,7 +347,7 @@ class Encore { * }) * ``` * - * @param {Object} aliases + * @param {object} aliases * * @returns {Encore} */ @@ -721,7 +721,7 @@ class Encore { * This is useful for older packages, that might * expect jQuery (or something else) to be a global variable. * - * @param {Object} variables + * @param {object} variables * @returns {Encore} */ autoProvideVariables(variables) { @@ -1031,7 +1031,7 @@ class Encore { * ``` * * @param {object} buildDependencies - * @param {function} cacheCallback + * @param {Function} cacheCallback * @returns {Encore} */ enableBuildCache(buildDependencies, cacheCallback = (cache) => {}) { @@ -1058,8 +1058,8 @@ class Encore { * ); * ``` * - * @param {function} loaderOptionsCallback - * @param {function} pluginOptionsCallback + * @param {Function} loaderOptionsCallback + * @param {Function} pluginOptionsCallback * @returns {Encore} */ configureMiniCssExtractPlugin(loaderOptionsCallback, pluginOptionsCallback = () => {}) { @@ -1271,7 +1271,6 @@ class Encore { * Supported options: * * {boolean} lintVue (default=false) * Configure the loader to lint `.vue` files - * ``` * * @param {string|object|(function(object): object|void)} eslintLoaderOptionsOrCallback * @param {{lintVue?: boolean}} encoreOptions @@ -1349,6 +1348,7 @@ class Encore { * * Internally, this disables the mini-css-extract-plugin * and uses the style-loader instead. + * * @param {boolean} disabled * @returns {Encore} */ @@ -1458,7 +1458,7 @@ class Encore { * ``` * * @param {object} options - * @param {string|object|function} ruleCallback + * @param {string|object|Function} ruleCallback * @returns {Encore} */ configureImageRule(options = {}, ruleCallback = (rule) => {}) { @@ -1475,7 +1475,7 @@ class Encore { * See configureImageRule() for more details. * * @param {object} options - * @param {string|object|function} ruleCallback + * @param {string|object|Function} ruleCallback * @returns {Encore} */ configureFontRule(options = {}, ruleCallback = (rule) => {}) { @@ -1504,7 +1504,7 @@ class Encore { * * @param {string} name * @param {function(webpack.RuleSetRule): webpack.RuleSetRule|void} callback - * @return {Encore} + * @returns {Encore} */ configureLoaderRule(name, callback) { webpackConfig.configureLoaderRule(name, callback); @@ -1700,6 +1700,7 @@ class Encore { /** * Proxy the API in order to prevent calls to most of its methods * if the webpackConfig object hasn't been initialized yet. + * * @type {Encore} */ module.exports = EncoreProxy.createProxy(new Encore()); diff --git a/lib/WebpackConfig.js b/lib/WebpackConfig.js index 3c231816..bb2a8b53 100644 --- a/lib/WebpackConfig.js +++ b/lib/WebpackConfig.js @@ -19,7 +19,7 @@ const { calculateDevServerUrl } = require('./config/path-util'); /** * @param {RuntimeConfig|null} runtimeConfig - * @return {void} + * @returns {void} */ function validateRuntimeConfig(runtimeConfig) { // if you're using the encore executable, these things should never happen @@ -38,7 +38,7 @@ function validateRuntimeConfig(runtimeConfig) { /** * @param {RuntimeConfig} runtimeConfig - * @return {void} + * @returns {void} */ function checkPackageJson(runtimeConfig) { // Display a warning if webpack is listed as a [dev-]dependency diff --git a/lib/config-generator.js b/lib/config-generator.js index a31f9c2b..701ed513 100644 --- a/lib/config-generator.js +++ b/lib/config-generator.js @@ -619,7 +619,7 @@ class ConfigGenerator { /** * @param {WebpackConfig} webpackConfig A configured WebpackConfig object * - * @return {*} The final webpack config object + * @returns {*} The final webpack config object */ module.exports = function(webpackConfig) { const generator = new ConfigGenerator(webpackConfig); diff --git a/lib/config/parse-runtime.js b/lib/config/parse-runtime.js index 14649f2d..baa326de 100644 --- a/lib/config/parse-runtime.js +++ b/lib/config/parse-runtime.js @@ -16,7 +16,7 @@ const babel = require('@babel/core'); /** * @param {object} argv - * @param {String} cwd + * @param {string} cwd * @returns {RuntimeConfig} */ module.exports = function(argv, cwd) { diff --git a/lib/config/path-util.js b/lib/config/path-util.js index 9752d3b3..ac2d4974 100644 --- a/lib/config/path-util.js +++ b/lib/config/path-util.js @@ -19,7 +19,7 @@ module.exports = { * Determines the "contentBase" to use for the devServer. * * @param {WebpackConfig} webpackConfig - * @return {String} + * @returns {string} */ getContentBase(webpackConfig) { // strip trailing slash (for Unix or Windows) @@ -59,7 +59,7 @@ module.exports = { * Returns the output path, but as a relative string (e.g. web/build) * * @param {WebpackConfig} webpackConfig - * @return {String} + * @returns {string} */ getRelativeOutputPath(webpackConfig) { return webpackConfig.outputPath.replace(webpackConfig.getContext() + path.sep, ''); @@ -72,7 +72,7 @@ module.exports = { * ok to use the publicPath as the manifestKeyPrefix. * * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ validatePublicPathAndManifestKeyPrefix(webpackConfig) { if (webpackConfig.manifestKeyPrefix !== null) { @@ -120,7 +120,7 @@ module.exports = { /** * @param {RuntimeConfig} runtimeConfig - * @return {string|null|Object.public|*} + * @returns {string} */ calculateDevServerUrl(runtimeConfig) { if (runtimeConfig.devServerFinalIsHttps === null) { diff --git a/lib/loaders/babel.js b/lib/loaders/babel.js index 6e923357..a3b190b4 100644 --- a/lib/loaders/babel.js +++ b/lib/loaders/babel.js @@ -16,7 +16,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); module.exports = { /** * @param {WebpackConfig} webpackConfig - * @return {Array} of loaders to use for Babel + * @returns {Array} of loaders to use for Babel */ getLoaders(webpackConfig) { let babelConfig = { @@ -106,7 +106,7 @@ module.exports = { /** * @param {WebpackConfig} webpackConfig - * @return {RegExp} to use for eslint-loader `test` rule + * @returns {RegExp} to use for eslint-loader `test` rule */ getTest(webpackConfig) { const extensions = [ diff --git a/lib/loaders/css-extract.js b/lib/loaders/css-extract.js index b41cdd3e..de15601e 100644 --- a/lib/loaders/css-extract.js +++ b/lib/loaders/css-extract.js @@ -19,7 +19,7 @@ module.exports = { * * @param {WebpackConfig} webpackConfig * @param {Array} loaders An array of some style loaders - * @return {Array} + * @returns {Array} */ prependLoaders(webpackConfig, loaders) { if (!webpackConfig.extractCss) { diff --git a/lib/loaders/css.js b/lib/loaders/css.js index 6d1c0c86..9bfbfd5c 100644 --- a/lib/loaders/css.js +++ b/lib/loaders/css.js @@ -17,7 +17,7 @@ module.exports = { /** * @param {WebpackConfig} webpackConfig * @param {boolean} useCssModules - * @return {Array} of loaders to use for CSS files + * @returns {Array} of loaders to use for CSS files */ getLoaders(webpackConfig, useCssModules = false) { const usePostCssLoader = webpackConfig.usePostCssLoader; diff --git a/lib/loaders/eslint.js b/lib/loaders/eslint.js index c8d41faa..8428d2e5 100644 --- a/lib/loaders/eslint.js +++ b/lib/loaders/eslint.js @@ -24,7 +24,7 @@ function isMissingConfigError(e) { module.exports = { /** * @param {WebpackConfig} webpackConfig - * @return {Object} of options to use for eslint-loader options. + * @returns {object} of options to use for eslint-loader options. */ getOptions(webpackConfig) { loaderFeatures.ensurePackagesExistAndAreCorrectVersion('eslint'); @@ -73,7 +73,7 @@ Install ${chalk.yellow('babel-eslint')} to prevent potential parsing issues: ${p /** * @param {WebpackConfig} webpackConfig - * @return {RegExp} to use for eslint-loader `test` rule + * @returns {RegExp} to use for eslint-loader `test` rule */ getTest(webpackConfig) { const extensions = ['jsx?']; diff --git a/lib/loaders/handlebars.js b/lib/loaders/handlebars.js index bfbe2010..8126d972 100644 --- a/lib/loaders/handlebars.js +++ b/lib/loaders/handlebars.js @@ -16,7 +16,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); module.exports = { /** * @param {WebpackConfig} webpackConfig - * @return {Array} of loaders to use for Handlebars + * @returns {Array} of loaders to use for Handlebars */ getLoaders(webpackConfig) { loaderFeatures.ensurePackagesExistAndAreCorrectVersion('handlebars'); diff --git a/lib/loaders/less.js b/lib/loaders/less.js index f49fbd90..ed1604df 100644 --- a/lib/loaders/less.js +++ b/lib/loaders/less.js @@ -18,7 +18,7 @@ module.exports = { /** * @param {WebpackConfig} webpackConfig * @param {boolean} useCssModules - * @return {Array} of loaders to use for Less files + * @returns {Array} of loaders to use for Less files */ getLoaders(webpackConfig, useCssModules = false) { loaderFeatures.ensurePackagesExistAndAreCorrectVersion('less'); diff --git a/lib/loaders/sass.js b/lib/loaders/sass.js index 72fe2829..17a7a2f1 100644 --- a/lib/loaders/sass.js +++ b/lib/loaders/sass.js @@ -18,7 +18,7 @@ module.exports = { /** * @param {WebpackConfig} webpackConfig * @param {boolean} useCssModules - * @return {Array} of loaders to use for Sass files + * @returns {Array} of loaders to use for Sass files */ getLoaders(webpackConfig, useCssModules = false) { loaderFeatures.ensurePackagesExistAndAreCorrectVersion('sass'); diff --git a/lib/loaders/stylus.js b/lib/loaders/stylus.js index 3029e6de..605966c9 100644 --- a/lib/loaders/stylus.js +++ b/lib/loaders/stylus.js @@ -18,7 +18,7 @@ module.exports = { /** * @param {WebpackConfig} webpackConfig * @param {boolean} useCssModules - * @return {Array} of loaders to use for Stylus files + * @returns {Array} of loaders to use for Stylus files */ getLoaders(webpackConfig, useCssModules = false) { loaderFeatures.ensurePackagesExistAndAreCorrectVersion('stylus'); diff --git a/lib/loaders/typescript.js b/lib/loaders/typescript.js index 2fd63dc7..49b40f5e 100644 --- a/lib/loaders/typescript.js +++ b/lib/loaders/typescript.js @@ -17,7 +17,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); module.exports = { /** * @param {WebpackConfig} webpackConfig - * @return {Array} of loaders to use for TypeScript + * @returns {Array} of loaders to use for TypeScript */ getLoaders(webpackConfig) { loaderFeatures.ensurePackagesExistAndAreCorrectVersion('typescript'); diff --git a/lib/loaders/vue.js b/lib/loaders/vue.js index 68b480f5..52592a9e 100644 --- a/lib/loaders/vue.js +++ b/lib/loaders/vue.js @@ -17,7 +17,7 @@ const getVueVersion = require('../utils/get-vue-version'); module.exports = { /** * @param {WebpackConfig} webpackConfig - * @return {Array} of loaders to use for Vue files + * @returns {Array} of loaders to use for Vue files */ getLoaders(webpackConfig) { const vueVersion = getVueVersion(webpackConfig); diff --git a/lib/plugins/asset-output-display.js b/lib/plugins/asset-output-display.js index c774166b..51b16380 100644 --- a/lib/plugins/asset-output-display.js +++ b/lib/plugins/asset-output-display.js @@ -21,7 +21,7 @@ const PluginPriorities = require('./plugin-priorities'); * @param {Array} plugins * @param {WebpackConfig} webpackConfig * @param {FriendlyErrorsWebpackPlugin} friendlyErrorsPlugin - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig, friendlyErrorsPlugin) { if (webpackConfig.useDevServer()) { diff --git a/lib/plugins/clean.js b/lib/plugins/clean.js index 981a7a6c..3fb586ef 100644 --- a/lib/plugins/clean.js +++ b/lib/plugins/clean.js @@ -19,7 +19,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); * * @param {Array} plugins to push to * @param {WebpackConfig} webpackConfig read only variable - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { diff --git a/lib/plugins/define.js b/lib/plugins/define.js index 9fcfff90..a3df3d62 100644 --- a/lib/plugins/define.js +++ b/lib/plugins/define.js @@ -17,7 +17,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); /** * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { const definePluginOptions = { diff --git a/lib/plugins/delete-unused-entries.js b/lib/plugins/delete-unused-entries.js index 0801617b..1bc2bb28 100644 --- a/lib/plugins/delete-unused-entries.js +++ b/lib/plugins/delete-unused-entries.js @@ -17,7 +17,7 @@ const copyEntryTmpName = require('../utils/copyEntryTmpName'); /** * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { const entries = [... webpackConfig.styleEntries.keys()]; diff --git a/lib/plugins/entry-files-manifest.js b/lib/plugins/entry-files-manifest.js index 902a3034..df258408 100644 --- a/lib/plugins/entry-files-manifest.js +++ b/lib/plugins/entry-files-manifest.js @@ -84,7 +84,7 @@ function processOutput(webpackConfig) { /** * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { plugins.push({ diff --git a/lib/plugins/forked-ts-types.js b/lib/plugins/forked-ts-types.js index 7930bc9a..f7d17149 100644 --- a/lib/plugins/forked-ts-types.js +++ b/lib/plugins/forked-ts-types.js @@ -16,7 +16,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); /** * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(webpackConfig) { const config = {}; diff --git a/lib/plugins/friendly-errors.js b/lib/plugins/friendly-errors.js index 00480ed3..f64560ce 100644 --- a/lib/plugins/friendly-errors.js +++ b/lib/plugins/friendly-errors.js @@ -21,7 +21,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); /** * @param {WebpackConfig} webpackConfig - * @return {FriendlyErrorsWebpackPlugin} + * @returns {FriendlyErrorsWebpackPlugin} */ module.exports = function(webpackConfig) { const friendlyErrorsPluginOptions = { diff --git a/lib/plugins/manifest.js b/lib/plugins/manifest.js index 3cc70cbe..56ae024b 100644 --- a/lib/plugins/manifest.js +++ b/lib/plugins/manifest.js @@ -19,7 +19,7 @@ const manifestKeyPrefixHelper = require('../utils/manifest-key-prefix-helper'); /** * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { let manifestPluginOptions = { diff --git a/lib/plugins/mini-css-extract.js b/lib/plugins/mini-css-extract.js index 67c44f6d..75a3e62a 100644 --- a/lib/plugins/mini-css-extract.js +++ b/lib/plugins/mini-css-extract.js @@ -17,7 +17,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); /** * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { // Don't add the plugin if CSS extraction is disabled diff --git a/lib/plugins/notifier.js b/lib/plugins/notifier.js index 63afc3d9..92f25952 100644 --- a/lib/plugins/notifier.js +++ b/lib/plugins/notifier.js @@ -17,7 +17,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); /** * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { if (!webpackConfig.useWebpackNotifier) { diff --git a/lib/plugins/optimize-css-assets.js b/lib/plugins/optimize-css-assets.js index 6cc61112..27420cb3 100644 --- a/lib/plugins/optimize-css-assets.js +++ b/lib/plugins/optimize-css-assets.js @@ -15,7 +15,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); /** * @param {WebpackConfig} webpackConfig - * @return {object} + * @returns {object} */ module.exports = function(webpackConfig) { const minimizerPluginOptions = { diff --git a/lib/plugins/stimulus-bridge.js b/lib/plugins/stimulus-bridge.js index 61d2bb7f..ac41bd62 100644 --- a/lib/plugins/stimulus-bridge.js +++ b/lib/plugins/stimulus-bridge.js @@ -21,7 +21,7 @@ const logger = require('../logger'); * * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { if (webpackConfig.useStimulusBridge) { diff --git a/lib/plugins/terser.js b/lib/plugins/terser.js index 36bac526..536d3724 100644 --- a/lib/plugins/terser.js +++ b/lib/plugins/terser.js @@ -15,7 +15,7 @@ const applyOptionsCallback = require('../utils/apply-options-callback'); /** * @param {WebpackConfig} webpackConfig - * @return {object} + * @returns {object} */ module.exports = function(webpackConfig) { const terserPluginOptions = { diff --git a/lib/plugins/variable-provider.js b/lib/plugins/variable-provider.js index bf30432b..1f9ae798 100644 --- a/lib/plugins/variable-provider.js +++ b/lib/plugins/variable-provider.js @@ -16,7 +16,7 @@ const PluginPriorities = require('./plugin-priorities'); /** * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { if (Object.keys(webpackConfig.providedVariables).length > 0) { diff --git a/lib/plugins/vue.js b/lib/plugins/vue.js index 1f264d83..8934dd30 100644 --- a/lib/plugins/vue.js +++ b/lib/plugins/vue.js @@ -15,7 +15,7 @@ const PluginPriorities = require('./plugin-priorities'); /** * @param {Array} plugins * @param {WebpackConfig} webpackConfig - * @return {void} + * @returns {void} */ module.exports = function(plugins, webpackConfig) { if (!webpackConfig.useVueLoader) { diff --git a/lib/utils/get-vue-version.js b/lib/utils/get-vue-version.js index a6e4c714..f7d5a48e 100644 --- a/lib/utils/get-vue-version.js +++ b/lib/utils/get-vue-version.js @@ -16,7 +16,7 @@ const logger = require('../logger'); /** * @param {WebpackConfig} webpackConfig - * @return {int|null} + * @returns {number|null} */ module.exports = function(webpackConfig) { if (webpackConfig.vueOptions.version !== null) { diff --git a/lib/utils/manifest-key-prefix-helper.js b/lib/utils/manifest-key-prefix-helper.js index e7b2b027..6d65ec29 100644 --- a/lib/utils/manifest-key-prefix-helper.js +++ b/lib/utils/manifest-key-prefix-helper.js @@ -15,7 +15,7 @@ const WebpackConfig = require('../WebpackConfig'); //eslint-disable-line no-unus * Helper for determining the manifest.json key prefix. * * @param {WebpackConfig} webpackConfig - * @return {string} + * @returns {string} */ module.exports = function(webpackConfig) { let manifestPrefix = webpackConfig.manifestKeyPrefix; diff --git a/lib/utils/regexp-escaper.js b/lib/utils/regexp-escaper.js index 64fe6678..d791c367 100644 --- a/lib/utils/regexp-escaper.js +++ b/lib/utils/regexp-escaper.js @@ -15,7 +15,7 @@ * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping * * @param {string} str - * @return {string} + * @returns {string} */ module.exports = function regexpEscaper(str) { return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); diff --git a/lib/utils/string-escaper.js b/lib/utils/string-escaper.js index e5b62707..465aa99b 100644 --- a/lib/utils/string-escaper.js +++ b/lib/utils/string-escaper.js @@ -17,7 +17,7 @@ * it needs to escape the Window path slashes). * * @param {string} str - * @return {string} + * @returns {string} */ module.exports = function stringEscaper(str) { return str.replace(/\\/g, '\\\\').replace(/\x27/g, '\\\x27'); diff --git a/package.json b/package.json index fd9a05e4..04d12116 100644 --- a/package.json +++ b/package.json @@ -70,6 +70,7 @@ "eslint-loader": "^4.0.0", "eslint-plugin-header": "^3.0.0", "eslint-plugin-import": "^2.8.0", + "eslint-plugin-jsdoc": "^32.3.0", "eslint-plugin-node": "^11.1.0", "file-loader": "^6.0.0", "fork-ts-checker-webpack-plugin": "^5.0.0 || ^6.0.0", diff --git a/test/helpers/assert.js b/test/helpers/assert.js index 37022235..7f423f11 100644 --- a/test/helpers/assert.js +++ b/test/helpers/assert.js @@ -52,7 +52,7 @@ const getMatchedFilename = function(targetDirectory, filenameRegex) { * Returns a regex to use to match this filename * * @param {string} filename Filename with possible [hash:8] wildcard - * @return {RegExp} + * @returns {RegExp} */ const convertFilenameToMatcher = function(filename) { const hashMatch = filename.match(/\[hash:(\d+)\]/); @@ -71,7 +71,7 @@ const convertFilenameToMatcher = function(filename) { class Assert { /** - * @param {WebpackConfig} webpackConfig + * @param {import('../../lib/WebpackConfig')} webpackConfig */ constructor(webpackConfig) { this.webpackConfig = webpackConfig; @@ -176,11 +176,11 @@ class Assert { /** * - * @param {Browser} browser + * @param {import('zombie')} browser * @param {Array} expectedResourcePaths Array of expected resources, but just * their short filenames - e.g. main.css * (i.e. without the public path) - * @return {void} + * @returns {void} */ assertResourcesLoadedCorrectly(browser, expectedResourcePaths) { const actualResources = []; diff --git a/test/helpers/setup.js b/test/helpers/setup.js index 4db5fd72..2d366fb6 100644 --- a/test/helpers/setup.js +++ b/test/helpers/setup.js @@ -145,7 +145,7 @@ function stopAllServers() { * @param {string} webRootDir Directory path (e.g. /path/to/public) where the web server should be rooted * @param {Array} scriptSrcs Used to create