{"id":25330777,"url":"https://github.com/arslivinski/eslint-config","last_synced_at":"2025-10-29T05:30:21.083Z","repository":{"id":57098911,"uuid":"331440330","full_name":"arslivinski/eslint-config","owner":"arslivinski","description":"Personal set of ESLint configurations","archived":false,"fork":false,"pushed_at":"2023-02-26T19:20:34.000Z","size":992,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-18T08:43:40.843Z","etag":null,"topics":["eslint","eslint-config","eslintconfig"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arslivinski.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-20T21:43:59.000Z","updated_at":"2023-05-04T11:50:36.000Z","dependencies_parsed_at":"2023-01-31T19:50:11.774Z","dependency_job_id":null,"html_url":"https://github.com/arslivinski/eslint-config","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslivinski%2Feslint-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslivinski%2Feslint-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslivinski%2Feslint-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslivinski%2Feslint-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arslivinski","download_url":"https://codeload.github.com/arslivinski/eslint-config/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238773086,"owners_count":19528053,"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","eslintconfig"],"created_at":"2025-02-14T03:23:20.806Z","updated_at":"2025-10-29T05:30:20.708Z","avatar_url":"https://github.com/arslivinski.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @arslivinski/eslint-config\n\nA very opinionated ESLint configuration, mostly focused on web development.\n\n## Usage\n\nThis configuration requires ESLint \u003e= 8.35.0\n\nTo install, run:\n\n```sh\nnpm install -D eslint@^8.35.0 @arslivinski/eslint-config\n```\n\nThen create a `.eslintrc.js`:\n\n```js\n'use strict';\n\nmodule.exports = {\n  extends: ['@arslivinski'],\n};\n```\n\nNow you can run:\n\n```sh\nnpm exec eslint -- ./\n```\n\n### React\n\nThis configuration also provides a set of rules for React projects. To use it,\nyou have to install these extra packages:\n\n```sh\nnpm install -D eslint-plugin-react eslint-plugin-react-hooks\n```\n\nand extend this config on your `.eslintrc.js`\n\n```js\n'use strict';\n\nmodule.exports = {\n  extends: ['@arslivinski/eslint-config', '@arslivinski/eslint-config/module', '@arslivinski/eslint-config/browser'],\n  overrides: [\n    {\n      files: ['*.jsx'],\n      extends: ['@arslivinski/eslint-config/react'],\n    },\n  ],\n};\n```\n\n### TypeScript\n\nThis configuration also provides a set of rules for TypeScript projects. To use\nyou have to install these extra packages:\n\n```sh\nnpm install -D typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-typescript\n```\n\nand extend this config on your `.eslintrc.js`\n\n```js\n'use strict';\n\nmodule.exports = {\n  extends: ['@arslivinski/eslint-config'],\n  overrides: [\n    {\n      files: ['*.ts'],\n      parserOptions: {\n        tsconfigRootDir: __dirname,\n        project: ['./tsconfig.json'],\n      },\n      settings: {\n        'import/resolver': {\n          typescript: {\n            project: './tsconfig.json',\n          },\n        },\n      },\n      extends: ['@arslivinski/eslint-config/module', '@arslivinski/eslint-config/typescript'],\n    },\n  ],\n};\n```\n\n### React and TypeScript\n\nIt's possible to mix them both. To use this way you have to install these extra\npackages:\n\n```sh\nnpm install -D eslint-plugin-react eslint-plugin-react-hooks typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-import-resolver-typescript\n```\n\nand extend this config on your `.eslintrc.js`\n\n```js\n'use strict';\n\nmodule.exports = {\n  extends: ['@arslivinski/eslint-config'],\n  overrides: [\n    {\n      files: ['*.ts', '*.tsx'],\n      parserOptions: {\n        tsconfigRootDir: __dirname,\n        project: ['./tsconfig.json'],\n      },\n      settings: {\n        'import/resolver': {\n          typescript: {\n            project: './tsconfig.json',\n          },\n        },\n      },\n      extends: [\n        '@arslivinski/eslint-config/typescript',\n        '@arslivinski/eslint-config/module',\n        '@arslivinski/eslint-config/browser',\n      ],\n    },\n    {\n      files: ['*.tsx'],\n      extends: ['@arslivinski/eslint-config/react'],\n    },\n  ],\n};\n```\n\n### Node\n\nYou can use this configuration for pure Node applications. For this, you need to\ninstall the following extra package:\n\n```sh\nnpm install -D eslint-plugin-n\n```\n\nThen, you need to set the Node version on the `engine` field of your `package.json`.\nExample:\n\n```json\n{\n  \"name\": \"your-module\",\n  \"version\": \"1.0.0\",\n  \"engines\": {\n    \"node\": \"\u003e=18.14.0\"\n  }\n}\n```\n\nand finally, extend this config on your `.eslintrc.js`. If you are using modules:\n\n```js\n'use strict';\n\nmodule.exports = {\n  extends: ['@arslivinski/eslint-config', '@arslivinski/eslint-config/module', '@arslivinski/eslint-config/node'],\n};\n```\n\n...or if you are using CommonJS:\n\n```js\n'use strict';\n\nmodule.exports = {\n  extends: ['@arslivinski/eslint-config', '@arslivinski/eslint-config/commonjs', '@arslivinski/eslint-config/node'],\n};\n```\n\n## Modules\n\nThis package provide the following modules to be used\n\n| Name          | Import                                     | Description                                                                                                                                 |\n| :------------ | :----------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |\n| base          | `@arslivinski/eslint-config`               | The base configuration for all kinds of JavaScript and TypeScript                                                                           |\n| module        | `@arslivinski/eslint-config/module`        | To be used when the files make use of ES imports                                                                                            |\n| commonjs      | `@arslivinski/eslint-config/commonjs`      | To be used when the files make use of CommonJS                                                                                              |\n| script        | `@arslivinski/eslint-config/script`        | To be used when the files are simple browser scripts, usualy imported with the `\u003cscript\u003e` tag that don't make use of ES imports or CommonJS |\n| browser       | `@arslivinski/eslint-config/browser`       | To lint files that will be used on a web browser                                                                                            |\n| node          | `@arslivinski/eslint-config/node`          | To lint files that will be used on a NodeJS environment                                                                                     |\n| serviceworker | `@arslivinski/eslint-config/serviceworker` | To be used with ServiceWorkers                                                                                                              |\n| worker        | `@arslivinski/eslint-config/worker`        | To be used with Workers                                                                                                                     |\n| webextension  | `@arslivinski/eslint-config/webextension`  | To be used with WebExtensions                                                                                                               |\n| scripting     | `@arslivinski/eslint-config/scripting`     | For script files, like build or release scripts, allowing to usage of `console.log` and imports from `devDependencies`                      |\n| jest          | `@arslivinski/eslint-config/jest`          | For Jest test files. Require `eslint-plugin-jest`                                                                                           |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farslivinski%2Feslint-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farslivinski%2Feslint-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farslivinski%2Feslint-config/lists"}