@perfective/eslint-config
Version:
ESLint shareable rules configuration
67 lines • 2.37 kB
JavaScript
import eslintPluginRxjs from 'eslint-plugin-rxjs-x';
import { typescriptFiles } from "../../linter/glob.js";
import { typescriptLanguageOptions } from "../../linter/language-options.js";
export function rxjsConfig(files = typescriptFiles) {
return {
files,
languageOptions: typescriptLanguageOptions(),
plugins: {
'rxjs-x': eslintPluginRxjs.configs.recommended.plugins['rxjs-x']
},
rules: {
'rxjs-x/ban-observables': 'error',
'rxjs-x/ban-operators': ['error', {
tap: false
}],
'rxjs-x/finnish': ['error', {
functions: true,
methods: true,
names: {},
parameters: true,
properties: true,
strict: true,
types: {},
variables: true
}],
'rxjs-x/just': 'off',
'rxjs-x/no-async-subscribe': 'error',
'rxjs-x/no-compat': 'error',
'rxjs-x/no-connectable': 'error',
'rxjs-x/no-create': 'error',
'rxjs-x/no-cyclic-action': 'error',
'rxjs-x/no-explicit-generics': 'off',
'rxjs-x/no-exposed-subjects': 'error',
'rxjs-x/no-finnish': 'off',
'rxjs-x/no-floating-observables': 'error',
'rxjs-x/no-ignored-error': 'error',
'rxjs-x/no-ignored-notifier': 'error',
'rxjs-x/no-ignored-observable': 'off',
'rxjs-x/no-ignored-replay-buffer': 'error',
'rxjs-x/no-ignored-subscribe': 'error',
'rxjs-x/no-ignored-subscription': 'error',
'rxjs-x/no-ignored-takewhile-value': 'error',
'rxjs-x/no-implicit-any-catch': ['off', {
allowExplicitAny: false
}],
'rxjs-x/no-index': 'error',
'rxjs-x/no-internal': 'warn',
'rxjs-x/no-nested-subscribe': 'error',
'rxjs-x/no-redundant-notify': 'error',
'rxjs-x/no-sharereplay': 'off',
'rxjs-x/no-subclass': 'error',
'rxjs-x/no-subject-unsubscribe': 'error',
'rxjs-x/no-subject-value': 'error',
'rxjs-x/no-subscribe-handlers': 'off',
'rxjs-x/no-topromise': 'error',
'rxjs-x/no-unbound-methods': 'error',
'rxjs-x/no-unsafe-catch': 'error',
'rxjs-x/no-unsafe-first': 'error',
'rxjs-x/no-unsafe-subject-next': 'error',
'rxjs-x/no-unsafe-switchmap': 'error',
'rxjs-x/no-unsafe-takeuntil': 'error',
'rxjs-x/prefer-observer': 'off',
'rxjs-x/suffix-subjects': 'off',
'rxjs-x/throw-error': 'error'
}
};
}