From 2a0b3d68bc801960aceda5663ebc1d4144cf8805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20De=20Boey?= Date: Sat, 16 May 2020 19:15:16 +0200 Subject: [PATCH] feat: Support ESLint 7.x BREAKING CHANGE: Requires Node@>=10.x --- .github/workflows/CI.yml | 62 +++++++++++++++++++++++----------------- package.json | 13 +++++---- test/pattern-matcher.js | 2 +- 3 files changed, 45 insertions(+), 32 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 95a6301..5aa64a7 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -13,13 +13,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v1 - with: - fetch-depth: 1 + uses: actions/checkout@v2 - name: Install Node.js uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 14 - name: Install Packages run: npm install - name: Lint @@ -29,35 +27,47 @@ jobs: name: Test strategy: matrix: - node: [12, 10, 8, 6] - eslint: [6, 5] - exclude: - # ESLint 6 doesn't support Node 6. - - node: 6 - eslint: 6 - # Run ESLint 5 on only the newest and oldest Node. - - node: 10 - eslint: 5 - - node: 8 - eslint: 5 - runs-on: ubuntu-latest + os: [ubuntu-latest] + eslint: [7] + node: [14] + include: + # On other platforms + - eslint: 7 + node: 14 + os: windows-latest + - eslint: 7 + node: 14 + os: macos-latest + # On old Node.js versions + - eslint: 7 + node: 12 + os: ubuntu-latest + - eslint: 7 + node: 10 + os: ubuntu-latest + # On old ESLint versions + - eslint: 6 + node: 14 + os: ubuntu-latest + - eslint: 5 + node: 14 + os: ubuntu-latest + # On the minimum supported ESLint/Node.js version + - eslint: 5 + node: 10 + os: ubuntu-latest + runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v1 - with: - fetch-depth: 1 + uses: actions/checkout@v2 - name: Install Node.js v${{ matrix.node }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }} - name: Install Packages - run: | - if [ ${{ matrix.node }} -eq 6 ]; then - npm install --global npm@^6.0.0 - fi - npm install - - name: Install ESLint v${{ matrix.eslint }} - run: npm install --no-save eslint@^${{ matrix.eslint }}.0.0 + run: npm install + - name: Install ESLint ${{ matrix.eslint }} + run: npm install --no-save eslint@${{ matrix.eslint }} - name: Build run: npm run -s build - name: Test diff --git a/package.json b/package.json index 661a97f..cd61e9b 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "2.1.0", "description": "Utilities for ESLint plugins.", "engines": { - "node": ">=6" + "node": ">=10" }, "sideEffects": false, "main": "index", @@ -12,15 +12,15 @@ "index.*" ], "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "devDependencies": { - "@mysticatea/eslint-plugin": "^12.0.0", + "@mysticatea/eslint-plugin": "^13.0.0", "codecov": "^3.6.1", "dot-prop": "^4.2.0", - "eslint": "^6.5.1", + "eslint": "^7.9.0", "esm": "^3.2.25", - "espree": "^6.1.1", + "espree": "^7.3.0", "mocha": "^6.2.2", "npm-run-all": "^4.1.5", "nyc": "^14.1.1", @@ -32,6 +32,9 @@ "vuepress": "^1.2.0", "warun": "^1.0.0" }, + "peerDependencies": { + "eslint": ">=5" + }, "scripts": { "prebuild": "npm run -s clean", "build": "rollup -c", diff --git a/test/pattern-matcher.js b/test/pattern-matcher.js index 717867f..f679397 100644 --- a/test/pattern-matcher.js +++ b/test/pattern-matcher.js @@ -3,7 +3,7 @@ import { PatternMatcher } from "../src/" const NAMED_CAPTURE_GROUP_SUPPORTED = (() => { try { - new RegExp("(?)", "u") //eslint-disable-line no-new, prefer-regex-literals, @mysticatea/node/no-unsupported-features/es-syntax + new RegExp("(?)", "u") //eslint-disable-line no-new, prefer-regex-literals return true } catch (_error) { return false