eslint-config-rational
TypeScript icon, indicating that this package has built-in type declarations

5.0.14 • Public • Published

eslint-config-rational

Minimal ESLint configuration for reducing version control noise and avoiding common mistakes.

Tenets

  • Prevent code patterns which frequently cause or lead to bugs.
  • Produce consistent source code without requiring functional changes.
  • Prefer rules which are auto-fixable.
  • Avoid rules which require frequent inline disabling.
  • Avoid rules which are already covered by TypeScript.

Getting Started

Install the eslint-config-rational package.

npm i -D eslint-config-rational eslint typescript

Add the rational configuration to your eslint.config.js (flat) configuration file.

import rational from 'eslint-config-rational';

export default rational();

Options

The rational(options?) configuration factory accepts the following options.

  • ignores: Add ESLint global ignores. Defaults to ['**/{.git,node_modules,out,lib,dist}'].
  • jsExtensions: Array of file extensions to lint as JavaScript. Defaults to ['.js', '.cjs', '.mjs', '.jsx'].
  • tsExtensions: Array of file extensions to lint as TypeScript. Defaults to ['.ts', '.cts', '.mts', '.tsx'].
  • jsxExtensions: Array of file extensions to lint as JSX. Defaults to ['.jsx', '.tsx'].
  • relaxedFiles: Array of file paths to lint with relaxed rules. Defaults to ['**/*.test.*', '**/*.spec.*', '**/*.config.*', '**/*.setup.*', '**/.*rc.*', '**/*.story.*', '**/__*', '**/__*/**', '**/.*', '**/.*/**'].
  • enableImports: Enable import rules. Defaults to true.
  • enableUnicorn: Enable unicorn rules. Defaults to true.
  • enableReact: Enable react rules. Defaults to true.
  • enableTypescript: Enable typescript rules. Defaults to true.
  • enableStylistic: Enable ESLint Stylistic rules. Defaults to true.
  • extend: One or more ESLint configurations to extend (nested arrays allowed).
  • override: One or more ESLint override configurations (nested arrays allowed).
import rational from 'eslint-config-rational';

export default rational({
  ignores: ['**/{.git,node_modules,out,lib,dist}'],
  jsExtensions: ['.js', '.cjs', '.mjs', '.jsx'],
  tsExtensions: ['.ts', '.cts', '.mts', '.tsx'],
  jsxExtensions: ['.jsx', '.tsx'],
  relaxedFiles: [
    '**/*.test.*',
    '**/*.spec.*',
    '**/*.config.*',
    '**/*.setup.*',
    '**/*.story.*',
    '**/__*.*',
    '**/__*/**',
    '**/.*.*',
    '**/.*/**',
  ],
  enableImports: true,
  enableUnicorn: true,
  enableReact: true,
  enableTypescript: true,
  enableStylistic: true,
  extend: [
    // ESLint configuration or (nested) array of configurations which
    // will precede the rational configuration.
  ],
  override: [
    // ESLint configuration or (nested) array of configurations which
    // will follow the rational configuration.
  ],
});

Package Sidebar

Install

npm i eslint-config-rational

Weekly Downloads

304

Version

5.0.14

License

Unlicense

Unpacked Size

34.2 kB

Total Files

31

Last publish

Collaborators

  • chrisackerman