UNPKG

eslint-config-satya164

Version:
125 lines (94 loc) 3.42 kB
# eslint-config-satya164 This is my personal ESLint config. I try to avoid rules which are purely stylistic and based on personal opinions. I'm tryin to keep it non-intrusive and aimed towards catching actual errors. ## Features The config includes these plugins by default: - [eslint-comments](https://eslint-community.github.io/eslint-plugin-eslint-comments/) - [import-x](https://github.com/un-ts/eslint-plugin-import-x) - [jest](https://github.com/jest-community/eslint-plugin-jest) - [prettier](https://github.com/prettier/eslint-plugin-prettier) - [promise](https://github.com/eslint-community/eslint-plugin-promise) - [react-hooks](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks) - [react-hooks](https://reactjs.org/docs/hooks-rules.html) - [react](https://github.com/Rel1cx/eslint-react) - [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) The config uses the `overrides` feature of ESLint to automatically adjust the config based on the filename. For example, typescript support is enabled for `.ts` and `.tsx` files, the `jest` environment is set for test files and more. Prettier is used for formatting. ## Usage First, install the required packages: ```sh yarn add --dev prettier eslint eslint-config-satya164 ``` If you're using TypeScript, also install the TypeScript compiler: ```sh yarn add --dev typescript ``` Now use the config in your config file: ```js // eslint.config.mjs import { defineConfig } from 'eslint/config'; import { recommended, react, vitest } from 'eslint-config-satya164'; export default defineConfig( // The base config recommended, // Optional configs for tools (i.e. react, vitest, jest) react, vitest, { // Your additional config here } ); ``` You can also enable type-aware rules: ```js // eslint.config.mjs import { defineConfig } from 'eslint/config'; import { recommended, typechecked } from 'eslint-config-satya164'; export default defineConfig( // The base config recommended, // Type-aware rules typechecked, { languageOptions: { // Needed for type-aware rules parserOptions: { project: true, // Path to folder containing tsconfig.json tsconfigRootDir: import.meta.dirname, }, }, }, ); ``` Also see [Typed Linting](https://typescript-eslint.io/troubleshooting/typed-linting) docs for more details. Using the config requires ESLint 9's [flat config format](https://eslint.org/docs/latest/use/configure/configuration-file). To lint your files, you can add the following script to your `package.json`: ```json "scripts": { "lint": "eslint \"**/*.{js,ts,tsx}\"" } ``` To show lint errors in your editor, you'll need to configure your editor. To configure [VSCode](https://code.visualstudio.com), add the following in `settings.json`: ```json "eslint.validate": [ { "language": "javascript", "autoFix": true }, { "language": "javascriptreact", "autoFix": true }, { "language": "typescript", "autoFix": true }, { "language": "typescriptreact", "autoFix": true } ], ``` On Mac OS, you can open `settings.json` file from `Code` > `Preferences` > `Settings` or via the keyboard shortcut <kbd>⌘,</kbd>. This config sets `autoFix` to `true` to automatically fix lint errors on save. You can set it to `false` if you don't want this behaviour. Happy linting 🎉