Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support ESLint 8.x #295

Draft
wants to merge 11 commits into
base: master
Choose a base branch
from
Draft
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
feat: Support ESLint 8.x
BREAKING CHANGE: Requires Node@^12.22.0 || ^14.17.0 || >=16.0.0
BREAKING CHANGE: Requires ESLint@^8.x
MichaelDeBoey committed Aug 23, 2021
commit 080dc5bdf1197c7fef4df76701c581162ac2140f
16 changes: 8 additions & 8 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -28,27 +28,27 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
eslint: [7]
eslint: ["^8.0.0-0"]
MichaelDeBoey marked this conversation as resolved.
Show resolved Hide resolved
node: [16]
include:
# On other platforms
- eslint: 7
- eslint: "^8.0.0-0"
node: 16
os: windows-latest
- eslint: 7
- eslint: "^8.0.0-0"
node: 16
os: macos-latest
# On old Node.js versions
- eslint: 7
- eslint: "^8.0.0-0"
node: 14
os: ubuntu-latest
- eslint: 7
- eslint: "^8.0.0-0"
node: 12
os: ubuntu-latest
# On old ESLint versions
- eslint: 7
node: 10
node: 16
os: ubuntu-latest
# On old ESLint versions
- eslint: 6
node: 16
os: ubuntu-latest
@@ -57,7 +57,7 @@ jobs:
os: ubuntu-latest
# On the minimum supported ESLint/Node.js version
- eslint: 5.16.0
node: 10.0.0
node: 12.22.0
os: ubuntu-latest

runs-on: ${{ matrix.os }}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ Additional ESLint's rules for Node.js
$ npm install --save-dev eslint eslint-plugin-node
```

- Requires Node.js `^10.0.0 || ^12.0.0 || >= 14.0.0`
- Requires Node.js `"^12.22.0 || ^14.17.0 || >=16.0.0"`
- Requires ESLint `>=5.16.0`

**Note:** It recommends a use of [the "engines" field of package.json](https://docs.npmjs.com/files/package.json#engines). The "engines" field is used by `node/no-unsupported-features/*` rules.
@@ -50,7 +50,7 @@ $ npm install --save-dev eslint eslint-plugin-node
"version": "1.0.0",
"type": "commonjs",
"engines": {
"node": ">=10.0.0"
"node": ">=12.22.0"
}
}
```
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
"version": "11.1.0",
"description": "Additional ESLint's rules for Node.js",
"engines": {
"node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"main": "lib/index.js",
"files": [
@@ -24,7 +24,7 @@
"devDependencies": {
"@mysticatea/eslint-plugin": "^13.0.0",
"codecov": "^3.3.0",
"eslint": "^7.32.0",
"eslint": "^8.0.0-0",
MichaelDeBoey marked this conversation as resolved.
Show resolved Hide resolved
"eslint-plugin-node": "file:.",
"fast-glob": "^2.2.6",
"globals": "^11.12.0",
6 changes: 3 additions & 3 deletions scripts/update-lib-index.js
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@

const fs = require("fs")
const path = require("path")
const { CLIEngine } = require("eslint")
const { ESLint } = require("eslint")
const { rules } = require("./rules")

const filePath = path.resolve(__dirname, "../lib/index.js")
@@ -35,8 +35,8 @@ module.exports = {
},
}
`
const engine = new CLIEngine({ fix: true })
const lintResult = engine.executeOnText(rawContent, filePath)
const engine = new ESLint({ fix: true })
const lintResult = engine.lintText(rawContent, { filePath })
const content = lintResult.results[0].output || rawContent

fs.writeFileSync(filePath, content)
34 changes: 17 additions & 17 deletions tests/lib/configs/recommended.js
Original file line number Diff line number Diff line change
@@ -2,19 +2,19 @@

const assert = require("assert")
const path = require("path")
const { CLIEngine } = require("eslint")
const { ESLint } = require("eslint")
const originalCwd = process.cwd()

describe("node/recommended config", () => {
describe("in CJS directory", () => {
const CJSRoot = path.resolve(__dirname, "../../fixtures/configs/cjs/")

/** @type {CLIEngine} */
/** @type {ESLint} */
let engine = null

beforeEach(() => {
process.chdir(CJSRoot)
engine = new CLIEngine({
engine = new ESLint({
baseConfig: { extends: "plugin:node/recommended" },
useEslintrc: false,
})
@@ -25,9 +25,9 @@ describe("node/recommended config", () => {
})

it("*.js files should be a script.", () => {
const report = engine.executeOnText(
const report = engine.lintText(
"import 'foo'",
path.join(CJSRoot, "test.js")
{ filePath: path.join(CJSRoot, "test.js") }
)

assert.deepStrictEqual(report.results[0].messages, [
@@ -44,9 +44,9 @@ describe("node/recommended config", () => {
})

it("*.cjs files should be a script.", () => {
const report = engine.executeOnText(
const report = engine.lintText(
"import 'foo'",
path.join(CJSRoot, "test.cjs")
{ filePath: path.join(CJSRoot, "test.cjs") }
)

assert.deepStrictEqual(report.results[0].messages, [
@@ -63,9 +63,9 @@ describe("node/recommended config", () => {
})

it("*.mjs files should be a module.", () => {
const report = engine.executeOnText(
const report = engine.lintText(
"import 'foo'",
path.join(CJSRoot, "test.mjs")
{ filePath: path.join(CJSRoot, "test.mjs") }
)

assert.deepStrictEqual(report.results[0].messages, [
@@ -86,12 +86,12 @@ describe("node/recommended config", () => {
describe("in ESM directory", () => {
const ESMRoot = path.resolve(__dirname, "../../fixtures/configs/esm/")

/** @type {CLIEngine} */
/** @type {ESLint} */
let engine = null

beforeEach(() => {
process.chdir(ESMRoot)
engine = new CLIEngine({
engine = new ESLint({
baseConfig: { extends: "plugin:node/recommended" },
useEslintrc: false,
})
@@ -102,9 +102,9 @@ describe("node/recommended config", () => {
})

it("*.js files should be a module.", () => {
const report = engine.executeOnText(
const report = engine.lintText(
"import 'foo'",
path.join(ESMRoot, "test.js")
{ filePath: path.join(ESMRoot, "test.js") }
)

assert.deepStrictEqual(report.results[0].messages, [
@@ -122,9 +122,9 @@ describe("node/recommended config", () => {
})

it("*.cjs files should be a script.", () => {
const report = engine.executeOnText(
const report = engine.lintText(
"import 'foo'",
path.join(ESMRoot, "test.cjs")
{ filePath: path.join(ESMRoot, "test.cjs") }
)

assert.deepStrictEqual(report.results[0].messages, [
@@ -141,9 +141,9 @@ describe("node/recommended config", () => {
})

it("*.mjs files should be a module.", () => {
const report = engine.executeOnText(
const report = engine.lintText(
"import 'foo'",
path.join(ESMRoot, "test.mjs")
{ filePath: path.join(ESMRoot, "test.mjs") }
)

assert.deepStrictEqual(report.results[0].messages, [
2 changes: 1 addition & 1 deletion tests/lib/rules/callback-return.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/callback-return")

new RuleTester().run("callback-return", rule, {
2 changes: 1 addition & 1 deletion tests/lib/rules/exports-style.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/exports-style")

new RuleTester().run("exports-style", rule, {
2 changes: 1 addition & 1 deletion tests/lib/rules/global-require.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/global-require")

const ERROR = { messageId: "unexpected", type: "CallExpression" }
2 changes: 1 addition & 1 deletion tests/lib/rules/handle-callback-err.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/handle-callback-err")

const EXPECTED_DECL_ERROR = {
2 changes: 1 addition & 1 deletion tests/lib/rules/no-callback-literal.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-callback-literal")

const ruleTester = new RuleTester()
2 changes: 1 addition & 1 deletion tests/lib/rules/no-extraneous-require.js
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
"use strict"

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-extraneous-require")

/**
2 changes: 1 addition & 1 deletion tests/lib/rules/no-hide-core-modules.js
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@
//------------------------------------------------------------------------------

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-hide-core-modules")

//------------------------------------------------------------------------------
2 changes: 1 addition & 1 deletion tests/lib/rules/no-missing-require.js
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
"use strict"

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-missing-require")

/**
2 changes: 1 addition & 1 deletion tests/lib/rules/no-mixed-requires.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-mixed-requires")

new RuleTester().run("no-mixed-requires", rule, {
2 changes: 1 addition & 1 deletion tests/lib/rules/no-new-require.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-new-require")

new RuleTester().run("no-new-require", rule, {
2 changes: 1 addition & 1 deletion tests/lib/rules/no-path-concat.js
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@
/*eslint-disable no-template-curly-in-string */

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-path-concat")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/no-process-env.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-process-env")

new RuleTester().run("no-process-env", rule, {
2 changes: 1 addition & 1 deletion tests/lib/rules/no-process-exit.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-process-exit")

new RuleTester().run("no-process-exit", rule, {
2 changes: 1 addition & 1 deletion tests/lib/rules/no-restricted-require.js
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
"use strict"

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-restricted-require")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/no-sync.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-sync")

new RuleTester().run("no-sync", rule, {
2 changes: 1 addition & 1 deletion tests/lib/rules/no-unpublished-bin.js
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
"use strict"

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-unpublished-bin")

/**
2 changes: 1 addition & 1 deletion tests/lib/rules/no-unpublished-require.js
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
"use strict"

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-unpublished-require")

/**
2 changes: 1 addition & 1 deletion tests/lib/rules/no-unsupported-features.js
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
"use strict"

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/no-unsupported-features")

const VERSION_MAP = new Map([
2 changes: 1 addition & 1 deletion tests/lib/rules/no-unsupported-features/node-builtins.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/no-unsupported-features/node-builtins")

/**
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-global/buffer.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-global/buffer")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-global/console.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-global/console")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-global/process.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-global/process")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-global/text-decoder.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-global/text-decoder")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-global/text-encoder.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-global/text-encoder")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-global/url-search-params.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-global/url-search-params")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-global/url.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-global/url")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-promises/dns.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-promises/dns")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/prefer-promises/fs.js
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
*/
"use strict"

const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../../lib/rules/prefer-promises/fs")

new RuleTester({
2 changes: 1 addition & 1 deletion tests/lib/rules/shebang.js
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@
"use strict"

const path = require("path")
const RuleTester = require("eslint").RuleTester
const { RuleTester } = require("eslint")
const rule = require("../../../lib/rules/shebang")

/**