Skip to content

Commit

Permalink
Require Node.js 12 and ESLint 8
Browse files Browse the repository at this point in the history
  • Loading branch information
sindresorhus committed Jan 9, 2022
1 parent e29b624 commit f8a5e48
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 32 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ jobs:
fail-fast: false
matrix:
node-version:
- 16
- 14
- 12
- 10
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm install
Expand Down
23 changes: 10 additions & 13 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,10 @@
"url": "https://sindresorhus.com"
},
"engines": {
"node": ">=10"
"node": ">=12"
},
"scripts": {
"//": "TODO: Fix tests",
"// test": "ava",
"test": "true"
"test": "ava"
},
"files": [
"index.js",
Expand Down Expand Up @@ -53,17 +51,16 @@
"simple"
],
"devDependencies": {
"ava": "^2.1.0",
"eslint": "^7.1.0",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-react-hooks": "^4.0.4",
"ava": "^2.4.0",
"eslint": "^8.6.0",
"eslint-plugin-react": "^7.28.0",
"eslint-plugin-react-hooks": "^4.3.0",
"is-plain-obj": "^3.0.0",
"react": "^17.0.1",
"temp-write": "^4.0.0"
"react": "^17.0.2"
},
"peerDependencies": {
"eslint": ">=7",
"eslint-plugin-react": ">=7.22.0",
"eslint-plugin-react-hooks": ">=4.2.0"
"eslint": ">=8.6.0",
"eslint-plugin-react": ">=7.28.0",
"eslint-plugin-react-hooks": ">=4.3.0"
}
}
4 changes: 2 additions & 2 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
## Install

```
$ npm install --save-dev eslint-config-xo eslint-config-xo-react eslint-plugin-react eslint-plugin-react-hooks
```sh
npm install --save-dev eslint-config-xo eslint-config-xo-react eslint-plugin-react eslint-plugin-react-hooks
```

## Usage
Expand Down
31 changes: 16 additions & 15 deletions test/test.js
Original file line number Diff line number Diff line change
@@ -1,42 +1,43 @@
import test from 'ava';
import isPlainObj from 'is-plain-obj';
import tempWrite from 'temp-write';
import eslint from 'eslint';
import {ESLint} from 'eslint';

const hasRule = (errors, ruleId) => errors.some(error => error.ruleId === ruleId);

function runEslint(string, config) {
const linter = new eslint.CLIEngine({
async function runEslint(string, config) {
const eslint = new ESLint({
useEslintrc: false,
configFile: tempWrite.sync(JSON.stringify(config))
overrideConfig: config,
});

return linter.executeOnText(string).results[0].messages;
const [firstResult] = await eslint.lintText(string);

return firstResult.messages;
}

test('main', t => {
const config = require('../space');
test('main', async t => {
const config = require('../space.js');

t.true(isPlainObj(config));
t.true(isPlainObj(config.rules));

const errors = runEslint('var app = <div className="foo">Unicorn</div>', config);
const errors = await runEslint('var app = <div className="foo">Unicorn</div>', config);
t.true(hasRule(errors, 'react/react-in-jsx-scope'));
});

test('space', t => {
const config = require('../space');
test('space', async t => {
const config = require('../space.js');

t.true(isPlainObj(config));
t.true(isPlainObj(config.rules));

const errors = runEslint('<App>\n\t<Hello/>\n</App>', config);
const errors = await runEslint('<App>\n\t<Hello/>\n</App>', config);
t.true(hasRule(errors, 'react/jsx-indent'));
});

test('no errors', t => {
const config = require('..');
test('no errors', async t => {
const config = require('../index.js');

const errors = runEslint('var React = require(\'react\');\nvar el = <div/>;', config);
const errors = await runEslint('var React = require(\'react\');\nvar el = <div/>;', config);
t.deepEqual(errors, []);
});

0 comments on commit f8a5e48

Please sign in to comment.