Skip to content

Commit 3d451c3

Browse files
committed
New: eslint-comments/recommended preset
1 parent 5be249c commit 3d451c3

File tree

7 files changed

+99
-13
lines changed

7 files changed

+99
-13
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/.nyc_output
22
/.vscode
33
/coverage
4-
/index.js
54
/node_modules
65
/npm-debug.log
76
/test.js

index.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* @author Toru Nagashima
3+
* @copyright 2016 Toru Nagashima. All rights reserved.
4+
* See LICENSE file in root directory for full license.
5+
*/
6+
"use strict"
7+
8+
module.exports = {
9+
configs: {
10+
recommended: {
11+
plugins: ["eslint-comments"],
12+
rules: {
13+
"eslint-comments/disable-enable-pair": "error",
14+
"eslint-comments/no-aggregating-enable": "error",
15+
"eslint-comments/no-duplicate-disable": "error",
16+
"eslint-comments/no-restricted-disable": "off",
17+
"eslint-comments/no-unlimited-disable": "error",
18+
"eslint-comments/no-unused-disable": "error",
19+
"eslint-comments/no-unused-enable": "error",
20+
"eslint-comments/no-use": "off",
21+
},
22+
},
23+
},
24+
rules: {
25+
"disable-enable-pair": require("./lib/rules/disable-enable-pair"),
26+
"no-aggregating-enable": require("./lib/rules/no-aggregating-enable"),
27+
"no-duplicate-disable": require("./lib/rules/no-duplicate-disable"),
28+
"no-restricted-disable": require("./lib/rules/no-restricted-disable"),
29+
"no-unlimited-disable": require("./lib/rules/no-unlimited-disable"),
30+
"no-unused-disable": require("./lib/rules/no-unused-disable"),
31+
"no-unused-enable": require("./lib/rules/no-unused-enable"),
32+
"no-use": require("./lib/rules/no-use"),
33+
},
34+
}

lib/rules/no-aggregating-enable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const utils = require("../utils")
1818

1919
/**
2020
* Creates AST event handlers for no-aggregating-enable.
21-
*
21+
*
2222
* @param {RuleContext} context - The rule context.
2323
* @returns {object} AST event handlers.
2424
*/

lib/rules/no-restricted-disable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const utils = require("../utils")
1919

2020
/**
2121
* Creates AST event handlers for no-restricted-disable.
22-
*
22+
*
2323
* @param {RuleContext} context - The rule context.
2424
* @returns {object} AST event handlers.
2525
*/

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"devDependencies": {
2020
"chokidar-cli": "^1.2.0",
2121
"codecov": "^3.0.0",
22-
"eslint": "^4.7.0",
22+
"eslint": "^4.10.0",
2323
"eslint-config-mysticatea": "^12.0.0",
2424
"mocha": "^4.0.0",
2525
"npm-run-all": "^4.1.1",
@@ -30,7 +30,7 @@
3030
"scripts": {
3131
"preversion": "run-s clean test build",
3232
"postversion": "git push && git push --tags",
33-
"build": "node scripts/generate-index.js",
33+
"build": "node scripts/build.js",
3434
"clean": "rimraf .nyc_output coverage index.js",
3535
"lint": "eslint lib scripts tests",
3636
"test": "nyc mocha \"tests/lib/**/*.js\" --reporter progress",

scripts/build.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* @author Toru Nagashima <https://github.com/mysticatea>
3+
* @copyright 2017 Toru Nagashima. All rights reserved.
4+
* See LICENSE file in root directory for full license.
5+
*/
6+
"use strict"
7+
8+
//------------------------------------------------------------------------------
9+
// Requirements
10+
//------------------------------------------------------------------------------
11+
12+
const fs = require("fs")
13+
const path = require("path")
14+
const generateIndex = require("./generate-index")
15+
16+
//------------------------------------------------------------------------------
17+
// Main
18+
//------------------------------------------------------------------------------
19+
20+
const rules =
21+
fs.readdirSync(path.resolve(__dirname, "../lib/rules"))
22+
.map(fileName => path.basename(fileName, ".js"))
23+
.map(name => {
24+
const meta = require(`../lib/rules/${name}`).meta
25+
return {
26+
id: `eslint-comments/${name}`,
27+
name,
28+
category: meta.docs.category,
29+
description: meta.docs.description,
30+
recommended: meta.docs.recommended,
31+
fixable: meta.fixable,
32+
deprecated: meta.deprecated,
33+
replacedBy: meta.docs.replacedBy,
34+
}
35+
})
36+
37+
generateIndex(rules)

scripts/generate-index.js

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,40 @@ const fs = require("fs")
1313
const path = require("path")
1414

1515
//------------------------------------------------------------------------------
16-
// Main
16+
// Helpers
1717
//------------------------------------------------------------------------------
1818

19-
fs.writeFileSync(path.resolve(__dirname, "../index.js"), `/**
19+
const INDEX_FILE_PATH = path.resolve(__dirname, "../index.js")
20+
21+
//------------------------------------------------------------------------------
22+
// Exports
23+
//------------------------------------------------------------------------------
24+
25+
/**
26+
* Generate `index.js` file.
27+
* @param {{id:string,name:string,category:string,description:string,recommended:boolean,fixable:boolean,deprecated:boolean,replacedBy:string[]}[]} rules The rules to generate index.js.
28+
* @returns {void}
29+
*/
30+
module.exports = (rules) => {
31+
fs.writeFileSync(INDEX_FILE_PATH, `/**
2032
* @author Toru Nagashima
2133
* @copyright 2016 Toru Nagashima. All rights reserved.
2234
* See LICENSE file in root directory for full license.
2335
*/
2436
"use strict"
2537
2638
module.exports = {
39+
configs: {
40+
recommended: {
41+
plugins: ["eslint-comments"],
42+
rules: {
43+
${rules.map(rule => ` "${rule.id}": "${rule.recommended ? "error" : "off"}",`).join("\n")}
44+
},
45+
},
46+
},
2747
rules: {
28-
${
29-
fs.readdirSync(path.resolve(__dirname, "../lib/rules"))
30-
.map(fileName => path.basename(fileName, ".js"))
31-
.map(ruleId => ` "${ruleId}": require("./lib/rules/${ruleId}"),`)
32-
.join("\n")
33-
}
48+
${rules.map(rule => ` "${rule.name}": require("./lib/rules/${rule.name}"),`).join("\n")}
3449
},
3550
}
3651
`)
52+
}

0 commit comments

Comments
 (0)