@smarttools/eslint-plugin-rxjs
v1.0.22
Published
 [](https://opensource.org/licenses/MIT) ;
module.exports = [{
files: ['**/*'],
plugins: {
rxjs,
},
},{
files: ['**/*.ts'],
// languageOptions here
rules: {
'rxjs/no-async-subscribe': 'error',
...etc.
},
}];Legacy Config
const { join } = require("path");
module.exports = {
parser: "@typescript-eslint/parser",
// parserOptions here
plugins: ["@smarttools/rxjs"],
extends: [],
rules: {
"@smarttools/rxjs/no-async-subscribe": "error",
...etc.
}
};Or, using the recommended configuration:
Note: The recommended configuration uses rules that require type checking. You will need to supply the parsing options as specified in the TypeScript ESLint documentation.
Flat Config
const rxjs = require('@smarttools/eslint-plugin-rxjs');
module.exports = [
rxjs.configs.recommended,
{
files: ['**/*.ts'],
plugins: {
rxjs,
},
},
// additional rules
];Legacy Config
const { join } = require("path");
module.exports = {
parser: "@typescript-eslint/parser",
// parserOptions here
extends: ["plugin:@smarttools/rxjs/recommended-legacy"],
};
Rules
The package includes the following rules.
Rules marked with ✅ are recommended and rules marked with 🔧 have fixers.
| Rule | Description | | |
| --- | --- | --- | --- |
| ban-observables | Forbids the use of banned observables. | | |
| ban-operators | Forbids the use of banned operators. | | |
| finnish | Enforces the use of Finnish notation. | | |
| just | Enforces the use of a just alias for of. | | 🔧 |
| no-async-subscribe | Forbids passing async functions to subscribe. | ✅ | |
| no-compat | Forbids importation from locations that depend upon rxjs-compat. | | |
| no-connectable | Forbids operators that return connectable observables. | | |
| no-create | Forbids the calling of Observable.create. | ✅ | |
| no-cyclic-action | Forbids effects and epics that re-emit filtered actions. | | |
| no-explicit-generics | Use @typescript-eslint/no-unnecessary-type-arguments instead. | | |
| no-exposed-subjects | Forbids exposed (i.e. non-private) subjects. | | |
| no-finnish | Forbids the use of Finnish notation. | | |
| no-ignored-error | Forbids the calling of subscribe without specifying an error handler. | | |
| no-ignored-notifier | Forbids observables not composed from the repeatWhen or retryWhen notifier. | ✅ | |
| no-ignored-observable | Forbids the ignoring of observables returned by functions. | | |
| no-ignored-replay-buffer | Forbids using ReplaySubject, publishReplay or shareReplay without specifying the buffer size. | ✅ | |
| no-ignored-subscribe | Forbids the calling of subscribe without specifying arguments. | | |
| no-ignored-subscription | Forbids ignoring the subscription returned by subscribe. | | |
| no-ignored-takewhile-value | Forbids ignoring the value within takeWhile. | ✅ | |
| no-implicit-any-catch | Like the no-implicit-any-catch rule in @typescript-eslint/eslint-plugin, but for the catchError operator instead of catch clauses. | ✅ | 🔧 |
| no-index | Forbids the importation from index modules - for the reason, see this issue. | ✅ | |
| no-internal | Forbids the importation of internals. | ✅ | 🔧 |
| no-nested-subscribe | Forbids the calling of subscribe within a subscribe callback. | ✅ | |
| no-redundant-notify | Forbids redundant notifications from completed or errored observables. | ✅ | |
| no-sharereplay | Forbids using the shareReplay operator. | ✅ | |
| no-subclass | Forbids subclassing RxJS classes. | | |
| no-subject-unsubscribe | Forbids calling the unsubscribe method of a subject instance. | ✅ | |
| no-subject-value | Forbids accessing the value property of a BehaviorSubject instance. | | |
| no-subscribe-handlers | Forbids the passing of handlers to subscribe. | | |
| no-topromise | Forbids the use of the toPromise method. | | |
| no-unbound-methods | Forbids the passing of unbound methods. | ✅ | |
| no-unsafe-catch | Forbids unsafe catchError usage in effects and epics. | | |
| no-unsafe-first | Forbids unsafe first/take usage in effects and epics. | | |
| no-unsafe-subject-next | Forbids unsafe optional next calls. | ✅ | |
| no-unsafe-switchmap | Forbids unsafe switchMap usage in effects and epics. | | |
| no-unsafe-takeuntil | Forbids the application of operators after takeUntil. | ✅ | |
| prefer-observer | Forbids the passing separate handlers to subscribe and tap. | | 🔧 |
| suffix-subjects | Enforces the use of a suffix in subject identifiers. | | |
| throw-error | Enforces the passing of Error values to error notifications. | | |
