Skip to content

Commit 8c82ddb

Browse files
sudo-suhasmacklinu
authored andcommitted
docs: Use link to tagged version for rule docs (#110)
1 parent c0c662a commit 8c82ddb

14 files changed

+49
-23
lines changed

.eslintrc.json

-6
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@
1818
"prefer-const": "error",
1919
"strict": ["error", "global"],
2020
"eslint-plugin/prefer-placeholders": "error",
21-
"eslint-plugin/require-meta-docs-url": [
22-
"error",
23-
{
24-
"pattern": "https://github.com/xjamundx/eslint-plugin-promise#{{name}}"
25-
}
26-
],
2721
"eslint-plugin/test-case-shorthand-strings": "error",
2822
"node/no-unsupported-features": ["error", { "version": 4 }],
2923
"prettier/prettier": "error"

rules/always-return.js

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

3+
const getDocsUrl = require('./lib/get-docs-url')
4+
35
function isFunctionWithBlockStatement(node) {
46
if (node.type === 'FunctionExpression') {
57
return true
@@ -55,7 +57,7 @@ function peek(arr) {
5557
module.exports = {
5658
meta: {
5759
docs: {
58-
url: 'https://github.com/xjamundx/eslint-plugin-promise#always-return'
60+
url: getDocsUrl('always-return')
5961
}
6062
},
6163
create: function(context) {

rules/avoid-new.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55

66
'use strict'
77

8+
const getDocsUrl = require('./lib/get-docs-url')
9+
810
module.exports = {
911
meta: {
1012
docs: {
11-
url: 'https://github.com/xjamundx/eslint-plugin-promise#avoid-new'
13+
url: getDocsUrl('avoid-new')
1214
}
1315
},
1416
create: function(context) {

rules/catch-or-return.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,13 @@
66

77
'use strict'
88

9+
const getDocsUrl = require('./lib/get-docs-url')
910
const isPromise = require('./lib/is-promise')
1011

1112
module.exports = {
1213
meta: {
1314
docs: {
14-
url: 'https://github.com/xjamundx/eslint-plugin-promise#catch-or-return'
15+
url: getDocsUrl('catch-or-return')
1516
}
1617
},
1718
create: function(context) {

rules/lib/get-docs-url.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
'use strict'
2+
3+
const pkg = require('../../package')
4+
5+
const REPO_URL = 'https://github.com/xjamundx/eslint-plugin-promise'
6+
7+
/**
8+
* Generates the URL to documentation for the given rule name. It uses the
9+
* package version to build the link to a tagged version of the
10+
* documentation file.
11+
*
12+
* @param {string} ruleName - Name of the eslint rule
13+
* @returns {string} URL to the documentation for the given rule
14+
*/
15+
function getDocsUrl(ruleName) {
16+
return `${REPO_URL}/tree/v${pkg.version}#${ruleName}`
17+
}
18+
19+
module.exports = getDocsUrl

rules/no-callback-in-promise.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55

66
'use strict'
77

8+
const getDocsUrl = require('./lib/get-docs-url')
89
const hasPromiseCallback = require('./lib/has-promise-callback')
910
const isInsidePromise = require('./lib/is-inside-promise')
1011
const isCallback = require('./lib/is-callback')
1112

1213
module.exports = {
1314
meta: {
1415
docs: {
15-
url:
16-
'https://github.com/xjamundx/eslint-plugin-promise#no-callback-in-promise'
16+
url: getDocsUrl('no-callback-in-promise')
1717
}
1818
},
1919
create: function(context) {

rules/no-native.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
'use strict'
55

6+
const getDocsUrl = require('./lib/get-docs-url')
7+
68
function isDeclared(scope, ref) {
79
return scope.variables.some(function(variable) {
810
if (variable.name !== ref.identifier.name) {
@@ -20,7 +22,7 @@ function isDeclared(scope, ref) {
2022
module.exports = {
2123
meta: {
2224
docs: {
23-
url: 'https://github.com/xjamundx/eslint-plugin-promise#no-native'
25+
url: getDocsUrl('no-native')
2426
}
2527
},
2628
create: function(context) {

rules/no-nesting.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55

66
'use strict'
77

8+
const getDocsUrl = require('./lib/get-docs-url')
89
const hasPromiseCallback = require('./lib/has-promise-callback')
910
const isInsidePromise = require('./lib/is-inside-promise')
1011

1112
module.exports = {
1213
meta: {
1314
docs: {
14-
url: 'https://github.com/xjamundx/eslint-plugin-promise#no-nesting'
15+
url: getDocsUrl('no-nesting')
1516
}
1617
},
1718
create: function(context) {

rules/no-promise-in-callback.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55

66
'use strict'
77

8+
const getDocsUrl = require('./lib/get-docs-url')
89
const isPromise = require('./lib/is-promise')
910
const isInsideCallback = require('./lib/is-inside-callback')
1011

1112
module.exports = {
1213
meta: {
1314
docs: {
14-
url:
15-
'https://github.com/xjamundx/eslint-plugin-promise#no-promise-in-callback'
15+
url: getDocsUrl('no-promise-in-callback')
1616
}
1717
},
1818
create: function(context) {

rules/no-return-in-finally.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
'use strict'
22

3+
const getDocsUrl = require('./lib/get-docs-url')
34
const isPromise = require('./lib/is-promise')
45

56
module.exports = {
67
meta: {
78
docs: {
8-
url:
9-
'https://github.com/xjamundx/eslint-plugin-promise#no-return-in-finally'
9+
url: getDocsUrl('no-return-in-finally')
1010
}
1111
},
1212
create: function(context) {

rules/no-return-wrap.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
'use strict'
88

9+
const getDocsUrl = require('./lib/get-docs-url')
910
const isPromise = require('./lib/is-promise')
1011
const rejectMessage = 'Expected throw instead of Promise.reject'
1112
const resolveMessage = 'Avoid wrapping return values in Promise.resolve'
@@ -20,7 +21,7 @@ function isInPromise(context) {
2021
module.exports = {
2122
meta: {
2223
docs: {
23-
url: 'https://github.com/xjamundx/eslint-plugin-promise#no-return-wrap'
24+
url: getDocsUrl('no-return-wrap')
2425
}
2526
},
2627
create: function(context) {

rules/param-names.js

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

3+
const getDocsUrl = require('./lib/get-docs-url')
4+
35
module.exports = {
46
meta: {
57
docs: {
6-
url: 'https://github.com/xjamundx/eslint-plugin-promise#param-names'
8+
url: getDocsUrl('param-names')
79
},
810
fixable: 'code'
911
},

rules/prefer-await-to-callbacks.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55

66
'use strict'
77

8+
const getDocsUrl = require('./lib/get-docs-url')
9+
810
const errorMessage = 'Avoid callbacks. Prefer Async/Await.'
911

1012
module.exports = {
1113
meta: {
1214
docs: {
13-
url:
14-
'https://github.com/xjamundx/eslint-plugin-promise#prefer-await-to-callbacks'
15+
url: getDocsUrl('prefer-await-to-callbacks')
1516
}
1617
},
1718
create: function(context) {

rules/prefer-await-to-then.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55

66
'use strict'
77

8+
const getDocsUrl = require('./lib/get-docs-url')
9+
810
module.exports = {
911
meta: {
1012
docs: {
11-
url:
12-
'https://github.com/xjamundx/eslint-plugin-promise#prefer-await-to-then'
13+
url: getDocsUrl('prefer-await-to-then')
1314
}
1415
},
1516
create: function(context) {

0 commit comments

Comments
 (0)