{"id":23335311,"url":"https://github.com/janszewczyk/eslint-config","last_synced_at":"2026-02-15T17:44:00.716Z","repository":{"id":37421319,"uuid":"479844453","full_name":"JanSzewczyk/eslint-config","owner":"JanSzewczyk","description":"ESLint shareable config for the JavaScript/TypeScript/React style guide  compliant with the Szum-Tech standards.","archived":false,"fork":false,"pushed_at":"2026-02-11T11:57:13.000Z","size":1074,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-11T20:04:35.837Z","etag":null,"topics":["code-style","eslint","eslint-plugin-import","eslint-plugin-jest","eslint-plugin-react","eslint-plugin-react-hooks","javascript","react","shareable-eslint-config","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/JanSzewczyk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-09T21:11:43.000Z","updated_at":"2026-02-11T11:56:16.000Z","dependencies_parsed_at":"2026-01-09T01:08:23.515Z","dependency_job_id":null,"html_url":"https://github.com/JanSzewczyk/eslint-config","commit_stats":{"total_commits":157,"total_committers":3,"mean_commits":"52.333333333333336","dds":0.2866242038216561,"last_synced_commit":"98365491164a3fbe5f3c05a4a3b43620fd1ac3c3"},"previous_names":["janszewczyk/eslint-config","janszewczyk/eslint-config-szum-tech"],"tags_count":68,"template":false,"template_full_name":null,"purl":"pkg:github/JanSzewczyk/eslint-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanSzewczyk%2Feslint-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanSzewczyk%2Feslint-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanSzewczyk%2Feslint-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanSzewczyk%2Feslint-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JanSzewczyk","download_url":"https://codeload.github.com/JanSzewczyk/eslint-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JanSzewczyk%2Feslint-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29483282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["code-style","eslint","eslint-plugin-import","eslint-plugin-jest","eslint-plugin-react","eslint-plugin-react-hooks","javascript","react","shareable-eslint-config","typescript"],"created_at":"2024-12-21T01:18:56.246Z","updated_at":"2026-02-15T17:44:00.692Z","avatar_url":"https://github.com/JanSzewczyk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @szum-tech/eslint-config\n\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/JanSzewczyk/eslint-config)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/JanSzewczyk/eslint-config)](https://github.com/JanSzewczyk/eslint-config/pulls)\n[![GitHub issues](https://img.shields.io/github/issues/JanSzewczyk/eslint-config)](https://github.com/JanSzewczyk/eslint-config/issues)\n![GitHub Repo stars](https://img.shields.io/github/stars/JanSzewczyk/eslint-config?style=social)\n\n[![🚀 publish](https://github.com/JanSzewczyk/eslint-config/actions/workflows/publish.yml/badge.svg?branch=main)](https://github.com/JanSzewczyk/eslint-config/actions/workflows/publish.yml)\n[![CodeQL 📈](https://github.com/JanSzewczyk/eslint-config/actions/workflows/codeql.yml/badge.svg)](https://github.com/JanSzewczyk/eslint-config/actions/workflows/codeql.yml)\n\n[![npm](https://img.shields.io/npm/v/@szum-tech/eslint-config)](https://www.npmjs.com/package/@szum-tech/eslint-config)\n![npm](https://img.shields.io/npm/dm/@szum-tech/eslint-config)\n\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits\u0026logoColor=white)](https://conventionalcommits.org)\n[![MIT License](https://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://github.com/JanSzewczyk/eslint-config/blob/main/LICENSE)\n\n---\n\nA shared configuration is an NPM package that exports a configuration as an array. It's super convenient for anyone to\nuse, because the configuration dynamically adapts to the needs of the project.\n\n**✨ Ready for ESLint v10!** This configuration uses the modern flat config format and is compatible with ESLint v9.x. Full ESLint v10 support will be added once the ecosystem plugins (especially typescript-eslint) release compatible versions.\n\n## 📚 Features\n\n- **[ESLint v9](https://eslint.org/)** - Latest stable version with full plugin ecosystem support (ready for v10 migration)\n- **Flat Config Format** - Uses the modern `eslint.config.js` format (legacy `.eslintrc` is not supported)\n- **Auto-detection** - Automatically enables plugins based on your project dependencies\n- [Opinionated code formatter with support for: JavaScript, TypeScript, JSX, ...](https://eslint.org/)\n- [Support linting of ES2015+ (ES6+) import/export syntax, and prevent issues with misspelling of file paths and import names](https://www.npmjs.com/package/eslint-plugin-import)\n- [TypeScript support](https://typescript-eslint.io/packages/typescript-eslint/) - **only** if\n  [typescript](https://www.npmjs.com/package/typescript) is used in project\n- [React](https://www.npmjs.com/package/eslint-plugin-react) \u0026\n  [React Hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks) specific linting rules - **only** if\n  [react](https://www.npmjs.com/package/react) is used in project\n- [Tailwindcss](https://www.npmjs.com/package/eslint-plugin-tailwindcss) specific linting rules - **only** if\n  [tailwindcss](https://tailwindcss.com/) is used in project\n- [Next.js](https://nextjs.org/docs/app/api-reference/config/eslint) specific linting rules - **only** if\n  [next](https://www.npmjs.com/package/next) is used in project\n- [Tests](https://www.npmjs.com/package/eslint-plugin-testing-library) specific linting rules - **only** if\n  [@testing-library/dom](https://www.npmjs.com/package/@testing-library/dom) is used in project\n- [Tests with jest-dom](https://www.npmjs.com/package/eslint-plugin-jest-dom) specific linting rules - **only** if\n  [@testing-library/jest-dom](https://www.npmjs.com/package/jest) is used in project\n- [Vitest](https://www.npmjs.com/package/@vitest/eslint-plugin) specific linting rules - **only** if\n  [vitest](https://www.npmjs.com/package/vitest) is used in project\n- [Playwright](https://www.npmjs.com/package/eslint-plugin-playwright) specific linting rules - **only** if\n  [@playwright/test](https://www.npmjs.com/package/@playwright/test) is used in project\n- [Storybook](https://www.npmjs.com/package/eslint-plugin-storybook) specific linting rules - **only** if\n  [storybook](https://www.npmjs.com/package/storybook) is used in project\n\n## 📖 Table of Contents\n\n\u003c!-- TOC --\u003e\n* [@szum-tech/eslint-config](#szum-techeslint-config)\n  * [📚 Features](#-features)\n  * [📖 Table of Contents](#-table-of-contents)\n  * [🎯 Getting Started](#-getting-started)\n    * [⚙️ Installation](#-installation)\n    * [Configuration](#configuration)\n  * [💻 Scripts](#-scripts)\n  * [🚀 Minimal GitHub ESlint check workflow](#-minimal-github-eslint-check-workflow)\n  * [🛠️ Developer Info](#-developer-info)\n    * [Dependencies](#dependencies)\n  * [📒 Changelog](#-changelog)\n  * [📜 License](#-license)\n\u003c!-- TOC --\u003e\n\n## 🎯 Getting Started\n\n### ⚙️ Installation\n\n[@szum-tech/eslint-config](https://github.com/JanSzewczyk/eslint-config) is available as\n[npm package](https://www.npmjs.com/package/@szum-tech/eslint-config).\n\n**Requirements:**\n- **ESLint** v9.0.0 or higher\n- **Node.js** v20.x+ / v22.x+ / v24.x+\n\n```shell\n# NPM\nnpm install --save-dev eslint@latest @szum-tech/eslint-config\n\n# YARN\nyarn add -D eslint@latest @szum-tech/eslint-config\n\n# PNPM\npnpm add --save-dev eslint@latest @szum-tech/eslint-config\n\n# BUN\nbun add --dev eslint@latest @szum-tech/eslint-config\n```\n\n### Configuration\n\nThis package uses the [ESLint Flat Config format](https://eslint.org/docs/latest/use/configure/configuration-files)\nintroduced in ESLint v9 and required in ESLint v10. The legacy `.eslintrc` format is not supported.\n\nA `@szum-tech/eslint-config` is an npm package that exports a configuration array that automatically adapts to your\nproject's dependencies.\n\n**Configuration file: `eslint.config.(js|cjs|mjs)`**\n\n#### Simple Usage\n\nExport the entire configuration as-is:\n\n```js\n// eslint.config.mjs\nexport { default } from \"@szum-tech/eslint-config\";\n```\n\n#### Extended Configuration\n\n`@szum-tech/eslint-config` is flexible enough to allow for configuration extensions. Use the spread operator to insert\nthe configuration into your array:\n\n```js\n// eslint.config.mjs\nimport szumTechEslintConfig from \"@szum-tech/eslint-config\";\n\nexport default [\n  ...szumTechEslintConfig,\n\n  // Your custom modifications\n  {\n    rules: {\n      \"no-unused-vars\": \"warn\"\n    }\n  }\n];\n```\n\n#### CommonJS Format\n\nFor projects using CommonJS:\n\n```js\n// eslint.config.cjs\nconst szumTechEslintConfig = require(\"@szum-tech/eslint-config\");\n\nmodule.exports = [\n  ...szumTechEslintConfig,\n\n  // Your custom modifications\n  {\n    rules: {\n      \"no-unused-vars\": \"warn\"\n    }\n  }\n];\n```\n\n\u003e **Note:** The configuration automatically detects which libraries are installed in your project (React, TypeScript,\n\u003e Next.js, Vitest, etc.) and enables the appropriate ESLint plugins and rules.\n\n## 💻 Scripts\n\nSuggested scripts you can add to `package.json` file:\n\n```json\n{\n  \"scripts\": {\n    \"lint\": \"eslint .\",\n    \"lint:ci\": \"eslint . -o eslint-results.sarif -f @microsoft/eslint-formatter-sarif\",\n    \"lint:fix\": \"eslint . --fix\",\n    \"lint:inspect\": \"npx @eslint/config-inspector@latest\"\n  }\n}\n```\n\n**Scripts description:**\n\n- `lint`: Lints the code using ESLint\n- `lint:ci`: Lints the code using ESLint for CI - uses a `@microsoft/eslint-formatter-sarif` output format for report\n  generation\n- `lint:fix`: Automatically fixes linting errors\n- `lint:inspect`: Launches a visual representation of the ESLint configuration file (check http://localhost:7777 in your\n  browser). Allows you to navigate through the rules, plugins, and language configurations that are enabled or disabled\n\n## 🚀 Minimal GitHub ESLint check workflow\n\nHere are the minimal steps required to run an ESLint check. Creating or adding any content to a PR will trigger this\nevent. Not only will this action validate the code and return its results, but it will also add highlighted parts of the\ncode that have an error to the comments under the PR thanks to the `Upload ESLint results to GitHub` step, which uses\n`github/codeql-action/upload-sarif`.\n\n```yaml\nname: PR Checks ✅\n\non:\n  pull_request:\n\njobs:\n  lint:\n    name: ESLint ⬣\n    runs-on: ${{ matrix.os }}\n    strategy:\n      matrix:\n        node-version: [24.x] # Use Node.js 20+, 22+, or 24+\n        os: [ubuntu-latest]\n    steps:\n      - name: Checkout code 📚\n        uses: actions/checkout@v4\n      - name: Set up Node 🟢\n        uses: actions/setup-node@v4\n        with:\n          node-version: ${{ matrix.node-version }}\n          cache: \"npm\"\n      - name: Install dependencies ⚙️\n        run: npm ci\n      - name: ESLint Check ⬣\n        run: npm run lint:ci\n        continue-on-error: true\n      - name: Upload ESLint results to GitHub\n        uses: github/codeql-action/upload-sarif@v3\n        with:\n          sarif_file: eslint-results.sarif\n          wait-for-processing: true\n```\n\n## 🛠️ Developer Info\n\n### Dependencies\n\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/@next/eslint-plugin-next)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/@vitest/eslint-plugin)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-plugin-import)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-plugin-jest-dom)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-plugin-playwright)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-plugin-react)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-plugin-react-hooks)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-plugin-storybook)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-plugin-tailwindcss)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-plugin-testing-library)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/globals)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/typescript-eslint)\n![NPM (prod) Dependency Version](https://img.shields.io/npm/dependency-version/%40szum-tech%2Feslint-config/eslint-import-resolver-typescript)\n\n## 📒 Changelog\n\nThe [changelog](https://github.com/JanSzewczyk/eslint-config/blob/main/CHANGELOG.md) is regularly updated to reflect\nwhat's changed in each new release.\n\n## 📜 License\n\nThis project is licensed under the terms of the\n[MIT license](https://github.com/JanSzewczyk/eslint-config/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanszewczyk%2Feslint-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanszewczyk%2Feslint-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanszewczyk%2Feslint-config/lists"}