Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ESLint rules for RxJS

License

NotificationsYou must be signed in to change notification settings

cartant/eslint-plugin-rxjs

Repository files navigation

GitHub LicenseNPM versionDownloadsBuild statusdependency statusdevDependency StatuspeerDependency Status

This package contains a bunch of ESLint rules for RxJS. Essentially, it's a re-implementation of the rules that are in therxjs-tslint-rules package. (The Angular-specific rules inrxjs-tslint-rules have been re-implemented ineslint-plugin-rxjs-angular.)

Some of the rules are rather opinionated and are not included in therecommended configuration. Developers can decide for themselves whether they want to enable opinionated rules.

Almost all of these rules require the TypeScript parser for ESLint.

Install

Install the ESLint TypeScript parser using npm:

npm install @typescript-eslint/parser --save-dev

Install the package using npm:

npm install eslint-plugin-rxjs --save-dev

Configure theparser and theparserOptions for ESLint. Here, I use a.eslintrc.js file for the configuration:

const{ join}=require("path");module.exports={parser:"@typescript-eslint/parser",parserOptions:{ecmaVersion:2019,project:join(__dirname,"./tsconfig.json"),sourceType:"module"},plugins:["rxjs"],extends:[],rules:{"rxjs/no-async-subscribe":"error","rxjs/no-ignored-observable":"error","rxjs/no-ignored-subscription":"error","rxjs/no-nested-subscribe":"error","rxjs/no-unbound-methods":"error","rxjs/throw-error":"error"}};

Or, using therecommended configuration:

const{ join}=require("path");module.exports={parser:"@typescript-eslint/parser",parserOptions:{ecmaVersion:2019,project:join(__dirname,"./tsconfig.json"),sourceType:"module"},extends:["plugin:rxjs/recommended"],};

Rules

The package includes the following rules.

Rules marked with ✅ are recommended and rules marked with 🔧 have fixers.

RuleDescription
ban-observablesForbids the use of banned observables.
ban-operatorsForbids the use of banned operators.
finnishEnforces the use of Finnish notation.
justEnforces the use of ajust alias forof.🔧
no-async-subscribeForbids passingasync functions tosubscribe.
no-compatForbids importation from locations that depend uponrxjs-compat.
no-connectableForbids operators that return connectable observables.
no-createForbids the calling ofObservable.create.
no-cyclic-actionForbids effects and epics that re-emit filtered actions.
no-explicit-genericsForbids explicit generic type arguments.
no-exposed-subjectsForbids exposed (i.e. non-private) subjects.
no-finnishForbids the use of Finnish notation.
no-ignored-errorForbids the calling ofsubscribe without specifying an error handler.
no-ignored-notifierForbids observables not composed from therepeatWhen orretryWhen notifier.
no-ignored-observableForbids the ignoring of observables returned by functions.
no-ignored-replay-bufferForbids usingReplaySubject,publishReplay orshareReplay without specifying the buffer size.
no-ignored-subscribeForbids the calling ofsubscribe without specifying arguments.
no-ignored-subscriptionForbids ignoring the subscription returned bysubscribe.
no-ignored-takewhile-valueForbids ignoring the value withintakeWhile.
no-implicit-any-catchLike theno-implicit-any-catch rule in@typescript-eslint/eslint-plugin, but for thecatchError operator instead ofcatch clauses.🔧
no-indexForbids the importation from index modules - for the reason, seethis issue.
no-internalForbids the importation of internals.🔧
no-nested-subscribeForbids the calling ofsubscribe within asubscribe callback.
no-redundant-notifyForbids redundant notifications from completed or errored observables.
no-sharereplayForbids using theshareReplay operator.
no-subclassForbids subclassing RxJS classes.
no-subject-unsubscribeForbids calling theunsubscribe method of a subject instance.
no-subject-valueForbids accessing thevalue property of aBehaviorSubject instance.
no-subscribe-handlersForbids the passing of handlers tosubscribe.
no-topromiseForbids the use of thetoPromise method.
no-unbound-methodsForbids the passing of unbound methods.
no-unsafe-catchForbids unsafecatchError usage in effects and epics.
no-unsafe-firstForbids unsafefirst/take usage in effects and epics.
no-unsafe-subject-nextForbids unsafe optionalnext calls.
no-unsafe-switchmapForbids unsafeswitchMap usage in effects and epics.
no-unsafe-takeuntilForbids the application of operators aftertakeUntil.
prefer-observerForbids the passing separate handlers tosubscribe andtap.🔧
suffix-subjectsEnforces the use of a suffix in subject identifiers.
throw-errorEnforces the passing ofError values to error notifications.

About

ESLint rules for RxJS

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp