{"id":13847406,"url":"https://github.com/cartant/eslint-plugin-rxjs-angular","last_synced_at":"2025-04-05T21:07:41.189Z","repository":{"id":39915619,"uuid":"223669231","full_name":"cartant/eslint-plugin-rxjs-angular","owner":"cartant","description":"ESLint rules for RxJS and Angular","archived":false,"fork":false,"pushed_at":"2024-04-10T18:00:37.000Z","size":502,"stargazers_count":98,"open_issues_count":14,"forks_count":11,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-29T11:19:06.785Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/cartant.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":["cartant"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-11-23T23:55:28.000Z","updated_at":"2024-10-15T23:08:04.000Z","dependencies_parsed_at":"2024-06-18T13:58:03.567Z","dependency_job_id":null,"html_url":"https://github.com/cartant/eslint-plugin-rxjs-angular","commit_stats":{"total_commits":125,"total_committers":5,"mean_commits":25.0,"dds":0.03200000000000003,"last_synced_commit":"55883b00bc2ade1b0cd672c48d65b982c8b127ba"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartant%2Feslint-plugin-rxjs-angular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartant%2Feslint-plugin-rxjs-angular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartant%2Feslint-plugin-rxjs-angular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartant%2Feslint-plugin-rxjs-angular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cartant","download_url":"https://codeload.github.com/cartant/eslint-plugin-rxjs-angular/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399877,"owners_count":20932876,"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-08-04T18:01:19.223Z","updated_at":"2025-04-05T21:07:41.169Z","avatar_url":"https://github.com/cartant.png","language":"TypeScript","funding_links":["https://github.com/sponsors/cartant"],"categories":["TypeScript"],"sub_categories":[],"readme":"# eslint-plugin-rxjs-angular\n\n[![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/cartant/eslint-plugin-rxjs-angular/blob/master/LICENSE)\n[![NPM version](https://img.shields.io/npm/v/eslint-plugin-rxjs-angular.svg)](https://www.npmjs.com/package/eslint-plugin-rxjs-angular)\n[![Downloads](http://img.shields.io/npm/dm/eslint-plugin-rxjs-angular.svg)](https://npmjs.org/package/eslint-plugin-rxjs-angular)\n[![Build status](https://img.shields.io/circleci/build/github/cartant/eslint-plugin-rxjs-angular?token=d3e3fd6613244558287da156fd9e0c4357a2170c)](https://app.circleci.com/pipelines/github/cartant)\n[![dependency status](https://img.shields.io/david/cartant/eslint-plugin-rxjs-angular.svg)](https://david-dm.org/cartant/eslint-plugin-rxjs-angular)\n[![devDependency Status](https://img.shields.io/david/dev/cartant/eslint-plugin-rxjs-angular.svg)](https://david-dm.org/cartant/eslint-plugin-rxjs-angular#info=devDependencies)\n[![peerDependency Status](https://img.shields.io/david/peer/cartant/eslint-plugin-rxjs-angular.svg)](https://david-dm.org/cartant/eslint-plugin-rxjs-angular#info=peerDependencies)\n\nThis package contains ESLint versions of the Angular/RxJS rules that are in the [`rxjs-tslint-rules`](https://github.com/cartant/rxjs-tslint-rules) package.\n\nThere is no recommended configuration for this package, as all of the rules are opinionated.\n\n# Install\n\nInstall the ESLint TypeScript parser using npm:\n\n```\nnpm install @typescript-eslint/parser --save-dev\n```\n\nInstall the package using npm:\n\n```\nnpm install eslint-plugin-rxjs-angular --save-dev\n```\n\nConfigure the `parser` and the `parserOptions` for ESLint. Here, I use a `.eslintrc.js` file for the configuration:\n\n```js\nconst { join } = require(\"path\");\nmodule.exports = {\n  parser: \"@typescript-eslint/parser\",\n  parserOptions: {\n    ecmaVersion: 2019,\n    project: join(__dirname, \"./tsconfig.json\"),\n    sourceType: \"module\"\n  },\n  plugins: [\"rxjs-angular\"],\n  extends: [],\n  rules: {\n    \"rxjs-angular/prefer-async-pipe\": \"error\"\n  }\n};\n```\n\n# Rules\n\nThe package includes the following rules:\n\n| Rule | Description | Recommended |\n| --- | --- | --- |\n| [`prefer-async-pipe`](https://github.com/cartant/eslint-plugin-rxjs-angular/blob/main/docs/rules/prefer-async-pipe.md) | Forbids the calling of `subscribe` within Angular components. | No |\n| [`prefer-composition`](https://github.com/cartant/eslint-plugin-rxjs-angular/blob/main/docs/rules/prefer-composition.md) | Forbids `subscribe` calls that are not composed within Angular components (and, optionally, within services, directives, and pipes). | No |\n| [`prefer-takeuntil`](https://github.com/cartant/eslint-plugin-rxjs-angular/blob/main/docs/rules/prefer-takeuntil.md) | Forbids Calling `subscribe` without an accompanying `takeUntil`. | No |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcartant%2Feslint-plugin-rxjs-angular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcartant%2Feslint-plugin-rxjs-angular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcartant%2Feslint-plugin-rxjs-angular/lists"}