Skip to content

Commit eefa0e1

Browse files
committed
chore: adopt require-meta-docs-url lint rule internally
1 parent c767ea3 commit eefa0e1

26 files changed

+34
-35
lines changed

.eslintrc.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
'use strict';
22

3+
const version = require('./package.json').version;
4+
35
module.exports = {
46
root: true,
57
plugins: ['node', 'self'],
@@ -20,8 +22,14 @@ module.exports = {
2022
'require-jsdoc': 'error',
2123

2224
'self/meta-property-ordering': 'off',
23-
'self/require-meta-docs-url': 'off',
2425
'self/report-message-format': ['error', '^[^a-z].*.$'],
26+
'self/require-meta-docs-url': [
27+
'error',
28+
{
29+
pattern:
30+
`https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v${version}/docs/rules/{{name}}.md`,
31+
},
32+
],
2533
},
2634
overrides: [
2735
{

lib/index.js

+1-16
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,12 @@ 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 = fs
4732
.readdirSync(`${__dirname}/rules`)
4833
.filter(fileName => fileName.endsWith('.js') && /^[^._]/.test(fileName))
4934
.map(fileName => fileName.replace(/\.js$/, ''))
50-
.reduce((rules, ruleName) => Object.assign(rules, { [ruleName]: loadRule(ruleName) }), {});
35+
.reduce((rules, ruleName) => Object.assign(rules, { [ruleName]: require(path.join(__dirname, 'rules', ruleName)) }), {});
5136

5237
module.exports.rules = allRules;
5338

lib/rules/consistent-output.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'enforce consistent use of output assertions in rule tests',
1818
category: 'Tests',
1919
recommended: false,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/consistent-output.md',
2021
},
2122
type: 'suggestion',
2223
fixable: null, // or "code" or "whitespace"

lib/rules/fixer-return.js

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ module.exports = {
2121
description: 'require fixer function to always return a value.',
2222
category: 'Possible Errors',
2323
recommended: true,
24+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/fixer-return.md',
2425
},
2526
type: 'problem',
2627
fixable: null,

lib/rules/meta-property-ordering.js

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ module.exports = {
1616
description: 'enforce the order of meta properties',
1717
category: 'Rules',
1818
recommended: false,
19+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/meta-property-ordering.md',
1920
},
2021
type: 'suggestion',
2122
fixable: 'code',

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

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ module.exports = {
4040
description: 'disallow usage of deprecated methods on rule context objects',
4141
category: 'Rules',
4242
recommended: false,
43+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/no-deprecated-context-methods.md',
4344
},
4445
type: 'suggestion',
4546
fixable: 'code',

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

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'disallow use of the deprecated context.report() API',
1818
category: 'Rules',
1919
recommended: true,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/no-deprecated-report-api.md',
2021
},
2122
type: 'suggestion',
2223
fixable: 'code', // or "code" or "whitespace"

lib/rules/no-identical-tests.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'disallow identical tests',
1818
category: 'Tests',
1919
recommended: true,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/no-identical-tests.md',
2021
},
2122
type: 'problem',
2223
fixable: 'code',

lib/rules/no-missing-placeholders.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'disallow missing placeholders in rule report messages',
1818
category: 'Rules',
1919
recommended: true,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/no-missing-placeholders.md',
2021
},
2122
type: 'problem',
2223
fixable: null,

lib/rules/no-unused-placeholders.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'disallow unused placeholders in rule report messages',
1818
category: 'Rules',
1919
recommended: true,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/no-unused-placeholders.md',
2021
},
2122
type: 'problem',
2223
fixable: null,

lib/rules/no-useless-token-range.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'disallow unnecessary calls to sourceCode.getFirstToken and sourceCode.getLastToken',
1818
category: 'Rules',
1919
recommended: true,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/no-useless-token-range.md',
2021
},
2122
type: 'suggestion',
2223
fixable: 'code',

lib/rules/prefer-object-rule.js

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ module.exports = {
1616
description: 'disallow rule exports where the export is a function.',
1717
category: 'Rules',
1818
recommended: false,
19+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/prefer-object-rule.md',
1920
},
2021
messages: {
2122
preferObject: 'Rules should be declared using the object style.',

lib/rules/prefer-output-null.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'disallow invalid RuleTester test cases with the output the same as the code.',
1818
category: 'Tests',
1919
recommended: false,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/prefer-output-null.md',
2021
},
2122
type: 'suggestion',
2223
fixable: 'code',

lib/rules/prefer-placeholders.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'disallow template literals as report messages',
1818
category: 'Rules',
1919
recommended: false,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/prefer-placeholders.md',
2021
},
2122
type: 'suggestion',
2223
fixable: null,

lib/rules/prefer-replace-text.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'require using replaceText instead of replaceTextRange.',
1818
category: 'Rules',
1919
recommended: false,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/prefer-replace-text.md',
2021
},
2122
type: 'suggestion',
2223
fixable: null,

lib/rules/report-message-format.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'enforce a consistent format for rule report messages',
1818
category: 'Rules',
1919
recommended: false,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/report-message-format.md',
2021
},
2122
type: 'suggestion',
2223
fixable: null,

lib/rules/require-meta-docs-description.js

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ module.exports = {
1515
description: 'require rules to implement a meta.docs.description property with the correct format',
1616
category: 'Rules',
1717
recommended: false, // TODO: enable it in a major release.
18+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/require-meta-docs-description.md',
1819
},
1920
type: 'suggestion',
2021
fixable: null,

lib/rules/require-meta-docs-url.js

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ module.exports = {
2121
description: 'require rules to implement a meta.docs.url property',
2222
category: 'Rules',
2323
recommended: false,
24+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/require-meta-docs-url.md',
2425
},
2526
type: 'suggestion',
2627
fixable: 'code',

lib/rules/require-meta-fixable.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'require rules to implement a meta.fixable property',
1818
category: 'Rules',
1919
recommended: true,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/require-meta-fixable.md',
2021
},
2122
type: 'problem',
2223
schema: [],

lib/rules/require-meta-has-suggestions.js

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module.exports = {
1313
description: 'require suggestable rules to implement a `meta.hasSuggestions` property',
1414
category: 'Rules',
1515
recommended: false,
16+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/require-meta-has-suggestions.md',
1617
},
1718
type: 'problem',
1819
messages: {

lib/rules/require-meta-schema.js

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module.exports = {
1313
description: 'require rules to implement a meta.schema property',
1414
category: 'Rules',
1515
recommended: false, // TODO: enable it in a major release.
16+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/require-meta-schema.md',
1617
},
1718
type: 'suggestion',
1819
fixable: 'code',

lib/rules/require-meta-type.js

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ module.exports = {
1818
description: 'require rules to implement a meta.type property',
1919
category: 'Rules',
2020
recommended: false, // TODO: enable it in a major release.
21+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/require-meta-type.md',
2122
},
2223
type: 'problem',
2324
fixable: null,

lib/rules/test-case-property-ordering.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'require the properties of a test case to be placed in a consistent order',
1818
category: 'Tests',
1919
recommended: false,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/test-case-property-ordering.md',
2021
},
2122
type: 'suggestion',
2223
fixable: 'code',

lib/rules/test-case-shorthand-strings.js

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ module.exports = {
1717
description: 'enforce consistent usage of shorthand strings for test cases with no options',
1818
category: 'Tests',
1919
recommended: false,
20+
url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/v3.0.3/docs/rules/test-case-shorthand-strings.md',
2021
},
2122
type: 'suggestion',
2223
schema: [{ enum: ['as-needed', 'never', 'consistent', 'consistent-as-needed'] }],

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"lint": "eslint . --ignore-pattern \"!.*\"",
1010
"generate-readme-table": "node build/generate-readme-table.js",
1111
"generate-release": "node-release-script",
12-
"test": "mocha tests --recursive"
12+
"test": "mocha tests --recursive",
13+
"version": "eslint --fix . && git add ."
1314
},
1415
"files": [
1516
"lib/"

tests/lib/index.js

-17
This file was deleted.

0 commit comments

Comments
 (0)