Skip to content

Commit 5b3f815

Browse files
authored
🐛 fix for ESLint 6 (#169)
1 parent fe73872 commit 5b3f815

File tree

9 files changed

+63
-34
lines changed

9 files changed

+63
-34
lines changed

azure-pipelines.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
# Node.js
2-
# Build a general Node.js project with npm.
3-
# Add steps that analyze code, save build artifacts, deploy, and more:
4-
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
5-
61
trigger:
72
- master
83

@@ -45,6 +40,23 @@ jobs:
4540
- script: npm run -s codecov
4641
displayName: Send Coverage
4742

43+
- job: tests_on_linux_with_eslint6
44+
displayName: Test ESLint 6 on Linux
45+
pool:
46+
vmImage: 'Ubuntu-16.04'
47+
steps:
48+
- task: NodeTool@0
49+
displayName: Install Node.js
50+
inputs:
51+
versionSpec: 12.x
52+
# It needs twice due to npm's bug: https://npm.community/t/error-node-modules-staging-eslint-e7cf6846-node-modules-eslint
53+
- script: npm install && npm install --no-save async eslint@^6.0.0-rc.0 && npm install --no-save async eslint@^6.0.0-rc.0
54+
displayName: Install Packages
55+
- script: npm test
56+
displayName: Test
57+
- script: npm run -s codecov
58+
displayName: Send Coverage
59+
4860
- job: tests_on_windows
4961
displayName: Test on Windows
5062
pool:

lib/rules/process-exit-as-throw.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,35 @@
55
"use strict"
66

77
const CodePathAnalyzer = safeRequire(
8+
"eslint/lib/linter/code-path-analysis/code-path-analyzer",
89
"eslint/lib/code-path-analysis/code-path-analyzer"
910
)
10-
const CodePath = safeRequire("eslint/lib/code-path-analysis/code-path")
1111
const CodePathSegment = safeRequire(
12+
"eslint/lib/linter/code-path-analysis/code-path-segment",
1213
"eslint/lib/code-path-analysis/code-path-segment"
1314
)
15+
const CodePath = safeRequire(
16+
"eslint/lib/linter/code-path-analysis/code-path",
17+
"eslint/lib/code-path-analysis/code-path"
18+
)
1419

1520
const originalLeaveNode =
1621
CodePathAnalyzer && CodePathAnalyzer.prototype.leaveNode
1722

1823
/**
1924
* Imports a specific module.
20-
*
21-
* @param {string} moduleName - A module name to import.
25+
* @param {...string} moduleNames - module names to import.
2226
* @returns {object|null} The imported object, or null.
2327
*/
24-
function safeRequire(moduleName) {
25-
try {
26-
return require(moduleName)
27-
} catch (_err) {
28-
return null
28+
function safeRequire(...moduleNames) {
29+
for (const moduleName of moduleNames) {
30+
try {
31+
return require(moduleName)
32+
} catch (_err) {
33+
// Ignore.
34+
}
2935
}
36+
return null
3037
}
3138

3239
/* istanbul ignore next */

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"eslint": "^5.16.0",
2727
"eslint-plugin-node": "file:.",
2828
"fast-glob": "^2.2.6",
29+
"globals": "^11.12.0",
2930
"mocha": "^6.1.4",
3031
"nyc": "^14.0.0",
3132
"opener": "^1.5.1",

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55
"use strict"
66

7-
const RuleTester = require("eslint/lib/testers/rule-tester")
7+
const { RuleTester } = require("eslint")
88
const rule = require("../../../lib/rules/no-deprecated-api")
99

1010
const ruleTester = new RuleTester()
@@ -63,6 +63,7 @@ ruleTester.run("no-deprecated-api", rule, {
6363
{
6464
code: "import domain from 'domain/';",
6565
parserOptions: { sourceType: "module" },
66+
env: { es6: true },
6667
},
6768

6869
// https://github.com/mysticatea/eslint-plugin-node/issues/55
@@ -948,12 +949,6 @@ ruleTester.run("no-deprecated-api", rule, {
948949
"'process.env.NODE_REPL_HISTORY_FILE' was deprecated since v4.0.0. Use 'NODE_REPL_HISTORY' instead.",
949950
],
950951
},
951-
{
952-
code: "import domain from 'domain';",
953-
options: [{ version: "4.0.0" }],
954-
parserOptions: { sourceType: "module" },
955-
errors: ["'domain' module was deprecated since v4.0.0."],
956-
},
957952

958953
{
959954
code: "new Buffer()",

tests/lib/rules/no-extraneous-import.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"use strict"
66

77
const path = require("path")
8-
const RuleTester = require("eslint").RuleTester
8+
const { RuleTester } = require("eslint")
99
const rule = require("../../../lib/rules/no-extraneous-import")
1010

1111
/**
@@ -17,9 +17,13 @@ function fixture(name) {
1717
return path.resolve(__dirname, "../../fixtures/no-extraneous", name)
1818
}
1919

20-
const tester = new RuleTester({ parserOptions: { sourceType: "module" } })
21-
22-
tester.run("no-extraneous-import", rule, {
20+
const ruleTester = new RuleTester({
21+
parserOptions: {
22+
ecmaVersion: 2015,
23+
sourceType: "module",
24+
},
25+
})
26+
ruleTester.run("no-extraneous-import", rule, {
2327
valid: [
2428
{
2529
filename: fixture("dependencies/a.js"),

tests/lib/rules/no-missing-import.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"use strict"
66

77
const path = require("path")
8-
const RuleTester = require("eslint").RuleTester
8+
const { RuleTester } = require("eslint")
99
const rule = require("../../../lib/rules/no-missing-import")
1010

1111
/**
@@ -17,7 +17,12 @@ function fixture(name) {
1717
return path.resolve(__dirname, "../../fixtures/no-missing", name)
1818
}
1919

20-
const ruleTester = new RuleTester({ parserOptions: { sourceType: "module" } })
20+
const ruleTester = new RuleTester({
21+
parserOptions: {
22+
ecmaVersion: 2015,
23+
sourceType: "module",
24+
},
25+
})
2126
ruleTester.run("no-missing-import", rule, {
2227
valid: [
2328
{

tests/lib/rules/no-unpublished-import.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"use strict"
66

77
const path = require("path")
8-
const RuleTester = require("eslint").RuleTester
8+
const { RuleTester } = require("eslint")
99
const rule = require("../../../lib/rules/no-unpublished-import")
1010

1111
/**
@@ -17,7 +17,12 @@ function fixture(name) {
1717
return path.resolve(__dirname, "../../fixtures/no-unpublished", name)
1818
}
1919

20-
const ruleTester = new RuleTester({ parserOptions: { sourceType: "module" } })
20+
const ruleTester = new RuleTester({
21+
parserOptions: {
22+
ecmaVersion: 2015,
23+
sourceType: "module",
24+
},
25+
})
2126
ruleTester.run("no-unpublished-import", rule, {
2227
valid: [
2328
{

tests/lib/rules/no-unsupported-features/es-builtins.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
*/
55
"use strict"
66

7-
const RuleTester = require("eslint").RuleTester
8-
const { configs } = require("@mysticatea/eslint-plugin")
7+
const { RuleTester } = require("eslint")
8+
const globals = require("globals")
99
const rule = require("../../../../lib/rules/no-unsupported-features/es-builtins")
1010

1111
/**
@@ -56,7 +56,7 @@ function concat(patterns) {
5656

5757
const ruleTester = new RuleTester({
5858
parserOptions: { ecmaVersion: 2018 },
59-
globals: Object.assign({}, configs.es2015.globals, configs.es2017.globals),
59+
globals: globals.es2017,
6060
})
6161
ruleTester.run(
6262
"no-unsupported-features/es-builtins",

tests/lib/rules/no-unsupported-features/es-syntax.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
"use strict"
66

77
const path = require("path")
8-
const RuleTester = require("eslint").RuleTester
9-
const { configs } = require("@mysticatea/eslint-plugin")
8+
const { RuleTester } = require("eslint")
9+
const globals = require("globals")
1010
const rule = require("../../../../lib/rules/no-unsupported-features/es-syntax")
1111

1212
/**
@@ -72,7 +72,7 @@ function concat(patterns) {
7272

7373
const ruleTester = new RuleTester({
7474
parserOptions: { ecmaVersion: 2019 },
75-
globals: Object.assign({}, configs.es2015.globals, configs.es2017.globals),
75+
globals: globals.es2017,
7676
})
7777
ruleTester.run(
7878
"no-unsupported-features/es-syntax",

0 commit comments

Comments
 (0)