Skip to content

Commit f7ab651

Browse files
authored
Chore: Adopt require-meta-docs-url lint rule internally (#128)
* Chore: adopt `eslint-plugin/require-meta-docs-url` lint rule internally * Chore: Switch rule doc URLs to use HEAD instead of a version tag
1 parent 51fa5bb commit f7ab651

27 files changed

+35
-19
lines changed

.eslintrc.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,13 @@ module.exports = {
3535
extends: ['plugin:self/all'],
3636
rules: {
3737
'self/report-message-format': ['error', '^[^a-z].*.$'],
38-
'self/require-meta-docs-url': 'off',
38+
'self/require-meta-docs-url': [
39+
'error',
40+
{
41+
pattern:
42+
'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/{{name}}.md',
43+
},
44+
],
3945
},
4046
},
4147
{

lib/index.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ const fs = require('fs');
1313
const path = require('path');
1414
const packageMetadata = require('../package');
1515
const PLUGIN_NAME = packageMetadata.name.replace(/^eslint-plugin-/, '');
16-
const PLUGIN_VERSION = packageMetadata.version;
1716

1817
const configFilters = {
1918
all: () => true,
@@ -28,26 +27,13 @@ const configFilters = {
2827
// Plugin Definition
2928
// ------------------------------------------------------------------------------
3029

31-
/**
32-
* Loads a given rule from the filesystem and generates its documentation URL
33-
* @param {string} ruleName The name of the rule
34-
* @returns {Rule} The ESLint rule to export
35-
*/
36-
function loadRule (ruleName) {
37-
const rule = require(path.join(__dirname, 'rules', ruleName));
38-
39-
rule.meta.docs.url =
40-
`https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v${PLUGIN_VERSION}/docs/rules/${ruleName}.md`;
41-
42-
return rule;
43-
}
44-
4530
// import all rules in lib/rules
4631
const allRules = Object.fromEntries(fs
4732
.readdirSync(`${__dirname}/rules`)
4833
.filter(fileName => fileName.endsWith('.js') && /^[^._]/.test(fileName))
4934
.map(fileName => fileName.replace(/\.js$/, ''))
50-
.map(ruleName => [ruleName, loadRule(ruleName)]));
35+
.map(ruleName => [ruleName, require(path.join(__dirname, 'rules', ruleName))])
36+
);
5137

5238
module.exports.rules = allRules;
5339

lib/rules/consistent-output.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module.exports = {
1818
description: 'enforce consistent use of `output` assertions in rule tests',
1919
category: 'Tests',
2020
recommended: true,
21+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/consistent-output.md',
2122
},
2223
fixable: null, // or "code" or "whitespace"
2324
schema: [

lib/rules/fixer-return.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ module.exports = {
2323
description: 'require fixer functions to return a fix',
2424
category: 'Rules',
2525
recommended: true,
26+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/fixer-return.md',
2627
},
2728
fixable: null,
2829
schema: [],

lib/rules/meta-property-ordering.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'enforce the order of meta properties',
1818
category: 'Rules',
1919
recommended: false,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/meta-property-ordering.md',
2021
},
2122
fixable: 'code',
2223
schema: [{

lib/rules/no-deprecated-context-methods.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ module.exports = {
4141
description: 'disallow usage of deprecated methods on rule context objects',
4242
category: 'Rules',
4343
recommended: true,
44+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-deprecated-context-methods.md',
4445
},
4546
fixable: 'code',
4647
schema: [],

lib/rules/no-deprecated-report-api.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module.exports = {
1818
description: 'disallow the version of `context.report()` with multiple arguments',
1919
category: 'Rules',
2020
recommended: true,
21+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-deprecated-report-api.md',
2122
},
2223
fixable: 'code', // or "code" or "whitespace"
2324
schema: [],

lib/rules/no-identical-tests.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module.exports = {
1818
description: 'disallow identical tests',
1919
category: 'Tests',
2020
recommended: true,
21+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-identical-tests.md',
2122
},
2223
fixable: 'code',
2324
schema: [],

lib/rules/no-missing-placeholders.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ module.exports = {
1919
description: 'disallow missing placeholders in rule report messages',
2020
category: 'Rules',
2121
recommended: true,
22+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-missing-placeholders.md',
2223
},
2324
fixable: null,
2425
schema: [],

lib/rules/no-only-tests.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module.exports = {
1010
description: 'disallow the test case property `only`',
1111
category: 'Tests',
1212
recommended: true,
13+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-only-tests.md',
1314
},
1415
hasSuggestions: true,
1516
schema: [],

0 commit comments

Comments
 (0)