{"id":15538915,"url":"https://github.com/ftzi/eslint-config-gev","last_synced_at":"2025-09-21T23:38:18.936Z","repository":{"id":51136754,"uuid":"317609058","full_name":"ftzi/eslint-config-gev","owner":"ftzi","description":"Curated ESLint rules","archived":false,"fork":false,"pushed_at":"2025-04-03T23:35:14.000Z","size":503,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T19:40:49.113Z","etag":null,"topics":["eslint","javascript","lint","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ftzi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-01T16:55:29.000Z","updated_at":"2025-04-03T23:35:17.000Z","dependencies_parsed_at":"2023-12-23T16:31:43.604Z","dependency_job_id":"54aad3b3-629d-4b72-8beb-e942e827747f","html_url":"https://github.com/ftzi/eslint-config-gev","commit_stats":{"total_commits":180,"total_committers":2,"mean_commits":90.0,"dds":0.0888888888888889,"last_synced_commit":"6cf0b5e8b2a2eb5236d1d5944fc061bbb433538a"},"previous_names":["srbrahma/eslint-config","hfantauzzi/eslint-config-gev","srbrahma/eslint-config-gev","brfantauzzi/eslint-config-gev","ftzi/eslint-config-gev"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftzi%2Feslint-config-gev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftzi%2Feslint-config-gev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftzi%2Feslint-config-gev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ftzi%2Feslint-config-gev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ftzi","download_url":"https://codeload.github.com/ftzi/eslint-config-gev/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250462567,"owners_count":21434613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eslint","javascript","lint","typescript"],"created_at":"2024-10-02T12:07:52.339Z","updated_at":"2025-09-21T23:38:13.873Z","avatar_url":"https://github.com/ftzi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align='center'\u003e\n\n[![npm](https://img.shields.io/npm/v/eslint-config-gev)](https://www.npmjs.com/package/eslint-config-gev)\n\u003c/div\u003e\n\n# eslint-config-gev\n\nCurated ESLint configs that I've been improving over the years. All my projects use this.\n\nSince v4, **this should be used together with Biome**. Internally, it uses my other package, the [eslint-config-biome](https://github.com/SrBrahma/eslint-config-biome). If you want to stay without Biome, use v3 together with Prettier (I recommend [prettier-config-gev](https://github.com/SrBrahma/prettier-config-gev))\n\n## 💿 Install:\n\nRun `npx eslint-config-gev \u003cflavor\u003e`, being flavor one of the following: `ts, next, react, react-native, js`. This list and further options can be seen by running `npx eslint-config-gev --help`.\n\nThis command adds the required package to your package.json and sets up the `.eslintrc.cjs`.\n\n### Manually\n\n```bash\nnpm i -D eslint-config-gev\n```\n\n- Add the following to the top of your .eslintrc.js:\n\n```js\n// This is a workaround for https://github.com/eslint/eslint/issues/3458\nrequire('@rushstack/eslint-patch/modern-module-resolution');\n```\n\nWith it, you won't need to install `eslint` and all the plugins we use!\n\n## Do one of the following\n\n### Typescript\n\n- Add `'eslint-config-gev'` _(or `'eslint-config-gev/ts'`)_ to the `extends: [...]` field in your eslintrc.\n\n  \u003cdetails\u003e\u003csummary\u003e\u003cb\u003e.eslintrc.js example\u003c/b\u003e\u003c/summary\u003e\n\n  ```js\n  // https://github.com/SrBrahma/eslint-config-gev\n  // This is a workaround for https://github.com/eslint/eslint/issues/3458\n  require('@rushstack/eslint-patch/modern-module-resolution');\n\n  module.exports = {\n    root: true,\n    env: {\n      es2021: true,\n      node: true,\n    },\n    extends: ['eslint-config-gev/js'],\n    overrides: [\n      {\n        files: ['*.ts'],\n        extends: ['eslint-config-gev/ts'],\n        parser: '@typescript-eslint/parser',\n        parserOptions: {\n          tsconfigRootDir: __dirname,\n          project: ['./tsconfig.json'],\n          ecmaVersion: 12,\n          sourceType: 'module',\n        },\n      },\n    ],\n    ignorePatterns: ['/lib/**/*', '/dist/**/*'],\n    rules: {},\n  };\n  ```\n\n  \u003c/details\u003e\n\n### Javascript\n\n- Add `'eslint-config-gev/js'` to the `extends: [...]` field in your eslintrc.\n\n  \u003cdetails\u003e\u003csummary\u003e\u003cb\u003e.eslintrc.js example\u003c/b\u003e\u003c/summary\u003e\n\n  ```js\n  // https://github.com/SrBrahma/eslint-config-gev\n  // This is a workaround for https://github.com/eslint/eslint/issues/3458\n  require('@rushstack/eslint-patch/modern-module-resolution');\n  module.exports = {\n    root: true,\n    env: {\n      es2021: true,\n      node: true,\n    },\n    extends: ['eslint-config-gev/js'],\n    ignorePatterns: [],\n    rules: {},\n  };\n  ```\n\n  \u003c/details\u003e\n\n### React\n\n#### Typescript\n\n- Add `'eslint-config-gev/react'` to the `extends: [...]` field in your eslintrc.\n\n  \u003cdetails\u003e\u003csummary\u003e\u003cb\u003e.eslintrc.js example\u003c/b\u003e\u003c/summary\u003e\n\n  ```js\n  // https://github.com/SrBrahma/eslint-config-gev\n  // This is a workaround for https://github.com/eslint/eslint/issues/3458\n  require('@rushstack/eslint-patch/modern-module-resolution');\n\n  module.exports = {\n    root: true,\n    env: {\n      es2021: true,\n      node: true,\n    },\n    extends: ['eslint-config-gev/react-js'],\n    overrides: [\n      {\n        files: ['*.ts', '*.tsx'],\n        extends: ['eslint-config-gev/react'],\n        parser: '@typescript-eslint/parser',\n        parserOptions: {\n          tsconfigRootDir: __dirname,\n          project: ['./tsconfig.json'],\n          ecmaVersion: 12,\n          sourceType: 'module',\n          ecmaFeatures: {\n            jsx: true,\n          },\n        },\n      },\n    ],\n    ignorePatterns: ['/lib/**/*', '/dist/**/*'],\n    rules: {},\n  };\n  ```\n\n\u003c/details\u003e\n\n#### Javascript\n\n- Add `'eslint-config-gev/react-js'` to the `extends: [...]` field in your eslintrc.\n\n  \u003cdetails\u003e\u003csummary\u003e\u003cb\u003e.eslintrc.js example\u003c/b\u003e\u003c/summary\u003e\n\n  ```js\n  // https://github.com/SrBrahma/eslint-config-gev\n  // This is a workaround for https://github.com/eslint/eslint/issues/3458\n  require('@rushstack/eslint-patch/modern-module-resolution');\n\n  module.exports = {\n    root: true,\n    env: {\n      es2021: true,\n      node: true,\n    },\n    extends: ['eslint-config-gev/react-js'],\n    ignorePatterns: ['/lib/**/*', '/dist/**/*'],\n    rules: {},\n  };\n  ```\n\n  \u003c/details\u003e\n\n### React Native\n\n#### Typescript\n\n- Add `'eslint-config-gev/react-native'` to the `extends: [...]` field in your eslintrc.\n\n  \u003cdetails\u003e\u003csummary\u003e\u003cb\u003e.eslintrc.js example\u003c/b\u003e\u003c/summary\u003e\n\n  ```js\n  // https://github.com/SrBrahma/eslint-config-gev\n  // This is a workaround for https://github.com/eslint/eslint/issues/3458\n  require('@rushstack/eslint-patch/modern-module-resolution');\n\n  module.exports = {\n    root: true,\n    env: {\n      es2021: true,\n      node: true,\n      'react-native/react-native': true, // *1\n    },\n    extends: ['eslint-config-gev/react-native-js'],\n    overrides: [\n      {\n        files: ['*.ts', '*.tsx'],\n        extends: ['eslint-config-gev/react-native'],\n        parser: '@typescript-eslint/parser',\n        parserOptions: {\n          tsconfigRootDir: __dirname,\n          project: ['./tsconfig.json'],\n          ecmaVersion: 12,\n          sourceType: 'module',\n          ecmaFeatures: {\n            // *1\n            jsx: true,\n          },\n        },\n      },\n    ],\n    rules: {},\n  };\n\n  // [*1]: https://github.com/Intellicode/eslint-plugin-react-native#configuration\n  ```\n\n  \u003c/details\u003e\n\n#### Javascript\n\n- Add `'eslint-config-gev/react-native-js'` to the `extends: [...]` field in your eslintrc.\n\n  \u003cdetails\u003e\u003csummary\u003e\u003cb\u003e.eslintrc.js example\u003c/b\u003e\u003c/summary\u003e\n\n  ```js\n  // https://github.com/SrBrahma/eslint-config-gev\n  // This is a workaround for https://github.com/eslint/eslint/issues/3458\n  require('@rushstack/eslint-patch/modern-module-resolution');\n\n  module.exports = {\n    root: true,\n    env: {\n      es2021: true,\n      node: true,\n      'react-native/react-native': true, // *1\n    },\n    extends: ['eslint-config-gev/react-native-js'],\n    rules: {},\n  };\n\n  // [*1]: https://github.com/Intellicode/eslint-plugin-react-native#configuration\n  ```\n\n  \u003c/details\u003e\n\n## 📰 [Changelog](./CHANGELOG.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftzi%2Feslint-config-gev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fftzi%2Feslint-config-gev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fftzi%2Feslint-config-gev/lists"}