README
eslint-config-aiven
Our internal ESLint and prettier configuration. We want to autoformat code like prettier does, but also do more static checks that eslint does. To do both, we use eslint-plugin-prettier and eslint acts as the frontend to check and autofix style and other issues.
The configuration is split into:
@aivenio/eslint-config-aiven
Recommended base configuration for TypeScript.@aivenio/eslint-config-aiven/react
The base + React additions.
Install recommended base
npm install @aivenio/eslint-config-aiven
Install peer dependencies. To get correct versions of these you should use npm 7 which auto-installs peer dependencies.
If using npm 6:
npm i --save-dev @typescript-eslint/parser npm i --save-dev eslint npm i --save-dev eslint-config-prettier npm i --save-dev eslint-plugin-import npm i --save-dev eslint-plugin-jsx-a11y npm i --save-dev eslint-plugin-prettier npm i --save-dev eslint-plugin-react npm i --save-dev prettier npm i --save-dev eslint-plugin-sonarjs npm i --save-dev eslint-plugin-react-hooks npm i --save-dev eslint-plugin-unused-imports npm i --save-dev eslint-plugin-import
Create an .eslintrc file to your repository root, with contents:
{ "extends": ["@aivenio/eslint-config-aiven"] }
Setup npm scripts in package.json
"eslint:fix": "eslint --config .eslintrc --fix \"src/**/*.{ts,tsx}\"", "eslint:check": "eslint --config .eslintrc \"src/**/*.{ts,tsx}\"",
Remember to setup a CI task to lint source code. See .github/workflows/test.yml for a GH action example.
Install for React
Follow all steps in "Install recommended base" first
Install additional peer dependencies
npm i --save-dev eslint-plugin-jsx-a11y npm i --save-dev eslint-plugin-react
Change the .eslintrc in your repository to have the following contents:
{ "extends": ["@aivenio/eslint-config-aiven/react"] }