Skip to content

Commit

Permalink
feat(eslint): enable comments/require-description
Browse files Browse the repository at this point in the history
Resolves #26

BREAKING CHANGE: ESLint disable directives (comments) now require a description. When migrating
to this version, you may want to disable this rule for some files.
  • Loading branch information
mrmckeb committed Aug 29, 2023
1 parent b81ebaa commit ec761d9
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 8 deletions.
2 changes: 1 addition & 1 deletion .releaserc.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module.exports = {
[
'@semantic-release/git',
{
// eslint-disable-next-line no-template-curly-in-string
// eslint-disable-next-line no-template-curly-in-string -- required by `semantic-release`.
message: 'release: ${nextRelease.version}',
},
],
Expand Down
2 changes: 1 addition & 1 deletion eslint/_base.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ module.exports = {
extends: [
'eslint:recommended',
'plugin:import/recommended',
'plugin:eslint-comments/recommended',
'prettier',
require.resolve('./rules/best-practice'),
require.resolve('./rules/comments'),
require.resolve('./rules/es6'),
require.resolve('./rules/import'),
require.resolve('./rules/possible-errors'),
Expand Down
6 changes: 6 additions & 0 deletions eslint/comments.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
extends: [
'plugin:eslint-comments/recommended',
require.resolve('./rules/comments'),
],
};
11 changes: 11 additions & 0 deletions eslint/rules/comments.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
module.exports = {
plugins: ['eslint-comments'],
rules: {
/**
* Require comments on ESlint disable directives.
*
* 🚫 Not fixable - https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/require-description.html
*/
'eslint-comments/require-description': 'error',
},
};
12 changes: 6 additions & 6 deletions eslint/utils/require-package.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// @ts-check
const pkgJson = require('../../package.json');

const log = (message = '') => process.stderr.write(`${message}\n`);

/**
* @returns {string} The name of the package manager.
*/
Expand All @@ -20,16 +22,14 @@ module.exports = (configName, packageName) => {
const packageManager = readPackageManager();
const command = packageManager === 'yarn' ? 'add' : 'install';

/* eslint-disable no-console */
console.error(
log(
`The \`${configName}\` config requires an optional peer dependency, which has not been installed.`,
);
console.error();
console.error('To install it, run:');
console.error(
log();
log('To install it, run:');
log(
`- ${packageManager} ${command} ${packageName}@${pkgJson.peerDependencies[packageName]}`,
);
/* eslint-enable no-console */

process.exit(1);
}
Expand Down

0 comments on commit ec761d9

Please sign in to comment.