{"id":27386307,"url":"https://github.com/igorkowalczyk/shared-configs","last_synced_at":"2025-04-13T17:18:16.372Z","repository":{"id":142184872,"uuid":"612916293","full_name":"IgorKowalczyk/shared-configs","owner":"IgorKowalczyk","description":"☔ My sharable ESlint and Prettier configs","archived":false,"fork":false,"pushed_at":"2025-04-13T13:16:57.000Z","size":3211,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-13T17:18:01.962Z","etag":null,"topics":["eslint","eslint-config","prettier","prettier-config","prettier-eslint","styleguide"],"latest_commit_sha":null,"homepage":"https://npm.im/search?q=%40igorkowalczyk%2Fconfig","language":"TypeScript","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/IgorKowalczyk.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,"zenodo":null},"funding":{"github":["igorkowalczyk"]}},"created_at":"2023-03-12T11:22:25.000Z","updated_at":"2025-04-13T13:14:24.000Z","dependencies_parsed_at":"2024-03-14T12:48:34.073Z","dependency_job_id":"175b5093-1a1c-4a33-9486-0079aac0defb","html_url":"https://github.com/IgorKowalczyk/shared-configs","commit_stats":null,"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorKowalczyk%2Fshared-configs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorKowalczyk%2Fshared-configs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorKowalczyk%2Fshared-configs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorKowalczyk%2Fshared-configs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgorKowalczyk","download_url":"https://codeload.github.com/IgorKowalczyk/shared-configs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248750123,"owners_count":21155687,"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-config","prettier","prettier-config","prettier-eslint","styleguide"],"created_at":"2025-04-13T17:18:15.662Z","updated_at":"2025-04-13T17:18:16.364Z","avatar_url":"https://github.com/IgorKowalczyk.png","language":"TypeScript","funding_links":["https://github.com/sponsors/igorkowalczyk"],"categories":[],"sub_categories":[],"readme":"![Shared Configs](https://github.com/IgorKowalczyk/shared-configs/assets/49127376/2601c027-e41e-439e-ab59-51f83aa1e35e)\n\n## ♻️ Shareable configs\n\n| **Package** | **Version** | **Downloads** | **Documentation** |\n| - | - | - | - |\n| 📦 [`@igorkowalczyk/eslint-config`](https://npmjs.com/package/@igorkowalczyk/eslint-config) | ![](https://img.shields.io/npm/v/%40igorkowalczyk%2Feslint-config/latest.svg) | [![](https://img.shields.io/npm/dw/@igorkowalczyk/eslint-config)](https://npmjs.com/package/@igorkowalczyk/eslint-config) | [Documentation](/packages/eslint-config/README.md) |\n| 📦 [`@igorkowalczyk/prettier-config`](https://npmjs.com/package/@igorkowalczyk/prettier-config) | ![](https://img.shields.io/npm/v/%40igorkowalczyk%2Fprettier-config/latest.svg) | [![](https://img.shields.io/npm/dw/@igorkowalczyk/prettier-config)](https://npmjs.com/package/@igorkowalczyk/prettier-config) | [Documentation](/packages/prettier-config/README.md) |\n| 📝 [`@igorkowalczyk/renovate-config`](https://npmjs.com/package/@igorkowalczyk/prettier-config) | ![](https://img.shields.io/github/package-json/v/igorkowalczyk/shared-configs?filename=packages%2Frenovate-config%2Fpackage.json\u0026label=github%40latest) | - | [Documentation](/packages/renovate-config/README.md) |\n\n\u003e [!NOTE]\n\u003e 📦 - Package  \n\u003e 📝 - Configuration file\n\n---\n\n## 📦 [`@igorkowalczyk/prettier-config`](https://www.npmjs.com/package/@igorkowalczyk/prettier-config)\n\n### 📥 Installation\n\n```bash\nnpm install --save-dev @igorkowalczyk/prettier-config\nyarn add --dev @igorkowalczyk/prettier-config\npnpm install --save-dev @igorkowalczyk/prettier-config\n```\n\n### 🔩 Usage\n\n```js\n// .prettierrc.js\nmodule.exports = {\n  ...require('@igorkowalczyk/prettier-config'),\n};\n```\n\n```js\n// prettier.config.js\nimport prettierConfig from \"@igorkowalczyk/prettier-config\";\n\nexport default {\n  ...prettierConfig,\n};\n```\n\n```json\n{\n  \"extends\": \"@igorkowalczyk/prettier-config\"\n}\n```\n\n### ⚙️ Rules overview\n\n\u003c!--START_SECTION:prettier--\u003e\n| Rule                         | Style       | Documentation                                                                          |\n| ---------------------------- | ----------- | -------------------------------------------------------------------------------------- |\n| `arrowParens`                | `always`    | [Documentation](https://prettier.io/docs/en/options.html#arrow-parens)                 |\n| `bracketSpacing`             | `true`      | [Documentation](https://prettier.io/docs/en/options.html#bracket-spacing)              |\n| `embeddedLanguageFormatting` | `auto`      | [Documentation](https://prettier.io/docs/en/options.html#embedded-language-formatting) |\n| `htmlWhitespaceSensitivity`  | `css`       | [Documentation](https://prettier.io/docs/en/options.html#html-whitespace-sensitivity)  |\n| `jsxSingleQuote`             | `false`     | [Documentation](https://prettier.io/docs/en/options.html#jsx-single-quote)             |\n| `printWidth`                 | `200000`    | [Documentation](https://prettier.io/docs/en/options.html#print-width)                  |\n| `proseWrap`                  | `preserve`  | [Documentation](https://prettier.io/docs/en/options.html#prose-wrap)                   |\n| `quoteProps`                 | `as-needed` | [Documentation](https://prettier.io/docs/en/options.html#quote-props)                  |\n| `requirePragma`              | `false`     | [Documentation](https://prettier.io/docs/en/options.html#require-pragma)               |\n| `semi`                       | `true`      | [Documentation](https://prettier.io/docs/en/options.html#semi)                         |\n| `singleQuote`                | `false`     | [Documentation](https://prettier.io/docs/en/options.html#single-quote)                 |\n| `tabWidth`                   | `1`         | [Documentation](https://prettier.io/docs/en/options.html#tab-width)                    |\n| `trailingComma`              | `es5`       | [Documentation](https://prettier.io/docs/en/options.html#trailing-comma)               |\n| `useTabs`                    | `false`     | [Documentation](https://prettier.io/docs/en/options.html#use-tabs)                     |\n\u003c!--END_SECTION:prettier--\u003e\n\n---\n\n## 📦 [`@igorkowalczyk/eslint-config`](https://www.npmjs.com/package/@igorkowalczyk/eslint-config)\n\n### 📥 Installation\n\n```bash\nnpm install --save-dev @igorkowalczyk/eslint-config\nyarn add --dev @igorkowalczyk/eslint-config\npnpm install --save-dev @igorkowalczyk/eslint-config\n```\n\n### 🔩 Usage\n\n\u003e [!NOTE]\n\u003e This package provides multiple ESLint configurations. You can use them in your project by importing the configuration you want to use.\n\n#### Basic configuration\n\nBasic configuration includes ESLint recommended rules, Prettier plugin and recommended rules for Prettier. \n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n ...eslintConfig.base\n];\n```\n\n#### [Prettier](https://prettier.io) configuration\n\nThis configuration includes recommended rules for Prettier\n\n\u003e [!WARNING]\n\u003e This configuration should be placed at the end of the configuration file! Otherwise, it may lead to unexpected behavior.\n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n  /* Other configurations */\n ...eslintConfig.prettier\n];\n```\n\n#### [Node.js](https://nodejs.org/) configuration\n\nConfiguration includes recommended rules for Node.js projects.\n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n ...eslintConfig.node\n];\n```\n\n#### [TypeScript](https://www.typescriptlang.org/) configuration\n\nConfiguration includes TypeScript parser and recommended rules for TypeScript projects.\n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n ...eslintConfig.typescript\n];\n```\n\n#### [React](https://react.dev/) configuration\n\nConfiguration includes recommended rules for React components.\n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n ...eslintConfig.react\n];\n```\n\n#### [Next.js](https://nextjs.org) configuration\n\nConfiguration includes recommended rules for Next.js projects.\n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n ...eslintConfig.next\n];\n```\n\n#### [Tailwind CSS](https://tailwindcss.com) configuration\n\nConfiguration includes recommended rules for Tailwind CSS projects like sorting classes.\n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n ...eslintConfig.tailwindcss\n];\n```\n\n#### [Astro](https://astro.build) configuration\n\nConfiguration includes Astro parser and recommended rules for Astro projects.\n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n ...eslintConfig.astro\n];\n```\n\n### 🔗 Chaining configurations\n\nYou can also chain multiple configurations together, for example, to use TypeScript and React configurations together.\n\n```js\n// eslint.config.js\nimport eslintConfig from \"@igorkowalczyk/eslint-config\";\n\nexport default [\n ...eslintConfig.base,\n ...eslintConfig.typescript,\n ...eslintConfig.react\n];\n```\n\n### ⚙️ Rules overview\n\nYou can find the full list of rules in the [ESLint config inspector](https://eslint.igorkowalczyk.dev/).\n\n---\n\n## 📝 [`@igorkowalczyk/renovate-config`](/packages/renovate-config/)\n\n\u003e [!WARNING]\n\u003e This is not a package - it is a configuration preset!\n\n### 🔩 Usage\nIn your `renovate.json` file, add the following:\n```json\n{\n \"extends\": [\"github\u003eigorkowalczyk/shared-configs//packages/renovate-config/index.json\"]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorkowalczyk%2Fshared-configs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorkowalczyk%2Fshared-configs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorkowalczyk%2Fshared-configs/lists"}