{"id":19472368,"url":"https://github.com/aboutbits/eslint-config","last_synced_at":"2025-04-25T12:31:23.024Z","repository":{"id":182735076,"uuid":"666324025","full_name":"aboutbits/eslint-config","owner":"aboutbits","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-20T10:51:09.000Z","size":526,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T07:17:04.920Z","etag":null,"topics":[],"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/aboutbits.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","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}},"created_at":"2023-07-14T08:27:29.000Z","updated_at":"2025-03-20T10:51:11.000Z","dependencies_parsed_at":"2024-06-18T06:42:16.422Z","dependency_job_id":"a15e86f0-f98a-474c-be9f-ed125999a434","html_url":"https://github.com/aboutbits/eslint-config","commit_stats":null,"previous_names":["aboutbits/eslint-config"],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboutbits%2Feslint-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboutbits%2Feslint-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboutbits%2Feslint-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aboutbits%2Feslint-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aboutbits","download_url":"https://codeload.github.com/aboutbits/eslint-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250817627,"owners_count":21492187,"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":[],"created_at":"2024-11-10T19:14:13.394Z","updated_at":"2025-04-25T12:31:22.402Z","avatar_url":"https://github.com/aboutbits.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @aboutbits/eslint-config\n\n[![npm package](https://badge.fury.io/js/%40aboutbits%2Feslint-config.svg)](https://badge.fury.io/js/%40aboutbits%2Feslint-config)\n[![license](https://img.shields.io/github/license/aboutbits/eslint-config)](https://github.com/aboutbits/eslint-config/blob/main/license.md)\n\nAboutBit's [ESLint](https://eslint.org/) config presets\n\n## Table of content\n\n- [Usage](#usage)\n  - [TypeScript](#typescript)\n  - [TypeScript + React](#typescript--react)\n  - [TypeScript + Next.js](#typescript--nextjs)\n  - [FormatJS](#formatjs)\n  - [Combining presets](#combining-presets)\n  - [Overriding Rules](#overriding-rules)\n- [Build \u0026 Publish](#build--publish)\n- [About](#about)\n\n## Usage\n\nInstall the package:\n\n```sh\nnpm i -D @aboutbits/eslint-config\n```\n\nWe recommend linting by running `eslint` without `--ext` option. What files are to be linted should be specified inside the ESLint config and the TypeScript config.\nAll files included (or not ignored) by the ESLint config (`.eslintrc.json`) must be included by the TypeScript config (`tsconfig.json`).\nFor example, if this is your `.eslintrc.json`:\n\n```json\n{\n  // ...remaining config\n  \"ignorePatterns\": [\"node_modules\", \"dist\"]\n}\n```\n\nYou may include the following files inside your `tsconfig.json`:\n\n```json\n{\n  // ...remaining config\n  \"exclude\": [\"node_modules\", \"dist\"],\n  \"include\": [\"**/*.ts\", \"**/*.tsx\"]\n}\n```\n\nShould you have files that you want to be linted, but not inside your `tsconfig.json`, you can create a `tsconfig.eslint.json` file.\nThen change `.eslintrc.json` to be:\n\n```json\n{\n  // ...omitted\n  \"parserOptions\": {\n    \"project\": \"./tsconfig.eslint.json\"\n  }\n  // ...omitted\n}\n```\n\n### TypeScript\n\nInstall the required packages, assuming that you have TypeScript already installed:\n\n```sh\nnpm i -D eslint prettier @typescript-eslint/eslint-plugin eslint-plugin-prettier eslint-plugin-import\n```\n\n`.eslintrc.json`\n\n```json\n{\n  \"extends\": \"@aboutbits/eslint-config/ts\",\n  \"parserOptions\": {\n    \"project\": true\n  }\n}\n```\n\n### TypeScript + React\n\nInstall the required packages, assuming that you have TypeScript already installed:\n\n```sh\nnpm i -D eslint prettier @typescript-eslint/eslint-plugin eslint-plugin-prettier eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-tailwindcss\n```\n\n`.eslintrc.json`\n\n```json\n{\n  \"extends\": \"@aboutbits/eslint-config/ts-react\",\n  \"parserOptions\": {\n    \"project\": true\n  }\n}\n```\n\n### TypeScript + Next.js\n\nInstall the required packages, assuming that you have TypeScript already installed:\n\n```sh\nnpm i -D eslint prettier @typescript-eslint/eslint-plugin eslint-plugin-prettier eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-tailwindcss @next/eslint-plugin-next\n```\n\n`.eslintrc.json`\n\n```json\n{\n  \"extends\": \"@aboutbits/eslint-config/ts-next\",\n  \"parserOptions\": {\n    \"project\": true\n  }\n}\n```\n\n### FormatJS\n\nInstall the required packages, assuming that you have TypeScript already installed:\n\n```sh\nnpm i -D eslint eslint-plugin-formatjs\n```\n\n`.eslintrc.json`\n\n```json\n{\n  \"extends\": \"@aboutbits/eslint-config/formatjs\",\n  \"parserOptions\": {\n    \"project\": true\n  }\n}\n```\n\n### Combining presets\n\nMost presets are mutually exclusive, which means that you should not combine them.\nHowever, you may combine the preset `formatjs` with any other preset you like.\nThe following shows how to combine it with the preset `ts-next`:\n\nInstall the required packages, assuming that you have TypeScript already installed:\n\n```sh\nnpm i -D eslint prettier @typescript-eslint/eslint-plugin eslint-plugin-prettier eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-tailwindcss @next/eslint-plugin-next eslint-plugin-formatjs\n```\n\n`.eslintrc.json`\n\n```json\n{\n  \"extends\": [\n    \"@aboutbits/eslint-config/ts-next\",\n    \"@aboutbits/eslint-config/formatjs\"\n  ],\n  \"parserOptions\": {\n    \"project\": true\n  }\n}\n```\n\n### Overriding rules\n\n`.eslintrc.json`\n\n```json\n{\n  \"extends\": \"@aboutbits/eslint-config/ts\",\n  \"parserOptions\": {\n    \"project\": true\n  },\n  \"rules\": {\n    // your rules...\n  }\n}\n```\n\n## Publish\n\nTo publish the package commit all changes and push them to main. Then run one of the following commands locally:\n\n```sh\nnpm version patch\nnpm version minor\nnpm version major\n```\n\n## Information\n\nAboutBits is a company based in South Tyrol, Italy. You can find more information about us\non [our website](https://aboutbits.it).\n\n### Support\n\nFor support, please contact [info@aboutbits.it](mailto:info@aboutbits.it).\n\n### Credits\n\n- [All Contributors](../../contributors)\n\n### License\n\nThe MIT License (MIT). Please see the [license file](license.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faboutbits%2Feslint-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faboutbits%2Feslint-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faboutbits%2Feslint-config/lists"}