{"id":22546337,"url":"https://github.com/kitnato/eslint-config-succinct","last_synced_at":"2026-05-05T11:35:17.586Z","repository":{"id":62042016,"uuid":"557330498","full_name":"kitnato/eslint-config-succinct","owner":"kitnato","description":"Strict \u0026 opinionated ESLint config for React+Typescript projects.","archived":false,"fork":false,"pushed_at":"2023-11-20T15:38:55.000Z","size":367,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2023-12-09T02:41:22.891Z","etag":null,"topics":["eslint","eslint-plugin","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kitnato.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}},"created_at":"2022-10-25T13:49:09.000Z","updated_at":"2023-12-09T02:41:27.565Z","dependencies_parsed_at":"2023-12-09T02:41:25.210Z","dependency_job_id":"be6c7b5a-6c63-43ea-882e-b1dfc8e7c4af","html_url":"https://github.com/kitnato/eslint-config-succinct","commit_stats":null,"previous_names":["cneuro/eslint-config-alpha","cneuro/eslint-config-functional","kitnato/eslint-config-functional","kitstigator/eslint-config-functional"],"tags_count":25,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitnato%2Feslint-config-succinct","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitnato%2Feslint-config-succinct/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitnato%2Feslint-config-succinct/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitnato%2Feslint-config-succinct/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kitnato","download_url":"https://codeload.github.com/kitnato/eslint-config-succinct/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245999322,"owners_count":20707554,"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","eslint-plugin","typescript"],"created_at":"2024-12-07T15:07:04.455Z","updated_at":"2026-05-05T11:35:17.556Z","avatar_url":"https://github.com/kitnato.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eslint-config-succinct\n\nAn [ESLint](https://eslint.org/) configuration library for projects based on React 18+ with Typescript 5+.\n\n## Purpose\n\nThis is an **opinionated** ESLint configuration that enforces consistent usage of ES6 \u0026 [strict](https://typescript-eslint.io/linting/configs/#strict) TypeScript non-OOP paradigms, as well as stylistic rules. It encourages adherence to functional-programming \u0026 accessibility best practices and restricts certain language features that are prone to anti-patterns.\n\n\u003e NB: Not be used alongside [Prettier](https://prettier.io/), since this config includes [@stylistic/eslint-plugin](https://eslint.style/) which supersedes its rules.\n\n## Particularities\n\nNotable linting rules include:\n\n- `class` declarations are disallowed (encouraging the use of pure functions).\n- `default` exports are disallowed (named exports keep imports consistent).\n- `interface` declarations are disallowed (avoids [declaration merging](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#merging-interfaces) - use `type` instead).\n- `enum` declarations are disallowed (use string [unions](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) instead).\n- Object keys, union types, imports and component props are sorted in case-insensitive alphabetical order.\n- Unused variables in object spreads or function arguments can be denoted by prefixing with a \"_\".\n- Semicolons are not used, instead relying on [ASI](https://262.ecma-international.org/7.0/#sec-rules-of-automatic-semicolon-insertion).\n- Enforces use of tab characters instead of spaces for indentation. This [article](https://www.alpharithms.com/tabs-vs-spaces-the-timeless-debate-581511) lays out the debate, with pros and cons.\n\n## Installation\n\nFirst, install this package alongside `eslint`:\n\n```sh\nnpm install -D @kitnato/eslint-config-succinct eslint\n```\n\nNext, create the `.eslintrc.json` configuration file at the root of your project:\n\n```json\n{\n  \"extends\": \"@kitnato/eslint-config-succinct\",\n}\n```\n\nRemember to [set](https://eslint.org/docs/latest/user-guide/configuring/ignoring-code) here any `ignorePatterns` if you require them beyond the standard `build` and `dist` folders, along with any other config overrides you may desire.\n\n## Usage\n\nOnce installed, you can run any `eslint` command.\n\nYou may also define scripts that will lint, fix and format your files to help automate your workflow.\n\nFor example, in your `package.json`, add the following under `scripts`:\n\n```json\n\"scripts\": {\n  \"lint-code\": \"eslint --fix --ext .ts,.tsx .\",\n}\n```\n\n## IDE setup\n\n### VS Code\n\nIf you use Microsoft VS Code, you can add the following snippet at the top of your `.vscode/settings.json` to automatically run the linter and fix all issues whenever a file is saved.\n\n```json\n\"editor.formatOnSave\": true,\n\"editor.codeActionsOnSave\": {\n  \"source.fixAll.eslint\": true\n}\n\"eslint.format.enable\": true,\n```\n\n## License\n\nThis work is licensed under the [GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.en.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitnato%2Feslint-config-succinct","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitnato%2Feslint-config-succinct","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitnato%2Feslint-config-succinct/lists"}