eslint-config-jimmy-guzman

14.1.0 • Public • Published

eslint-config-jimmy-guzman

actions version downloads semantic-release code style: prettier Code Coverage

An opinionated ESLint configuration that targets typescript, javascript, react, jest vitest and testing-library

Usage

The current version of eslint-config-jimmy-guzman is fully supported on LTS and current versions of node, and requires at least node v20.

Installation

pnpm add -D eslint-config-jimmy-guzman

Configuration

Add extends: ['jimmy-guzman'] to your .eslintrc to get all the rules that enforce code style, enforce best practices and prevent errors.

This package also includes rules for jest, vitest, react, typescript and testing-library that can be used such as:

rules configuration notes
base extends: ['jimmy-guzman']
jest extends: ['jimmy-guzman', 'jimmy-guzman/jest']
vitest extends: ['jimmy-guzman', 'jimmy-guzman/vitest']
typescript extends: ['jimmy-guzman', 'jimmy-guzman/typescript'] here
react extends: ['jimmy-guzman', 'jimmy-guzman/react'] here
testing-library extends: ['jimmy-guzman', 'jimmy-guzman/react', 'jimmy-guzman/testing-library'] here

Monorepos

The following rules don't support some monorepo setups so you might need to turned them off:

/** @type {import('eslint').Linter.Config} */
module.exports = {
  extends: ['jimmy-guzman'],
  rules: {
    'import/no-extraneous-dependencies': 'off',
    'react/jsx-uses-react': 'error',
  },
}

Typescript

jimmy-guzman/typescript ruleset requires type information that needs further configuration:

/** @type {import('eslint').Linter.Config} */
module.exports = {
  extends: ['jimmy-guzman', 'jimmy-guzman/typescript'],
  parserOptions: {
    project: ['./tsconfig.json'],
  },
}

You can read more about linting with type information here

React

jimmy-guzman/react favors React 17's new jsx transform so a couple of rules are turned off by default. If you are not using the new jsx transform, it's recommended to add this configuration:

/** @type {import('eslint').Linter.Config} */
module.exports = {
  extends: ['jimmy-guzman', 'jimmy-guzman/react'],
  parserOptions: {
    ecmaFeatures: {
      jsx: true,
      pragma: 'React',
    },
  },
  rules: {
    'react/react-in-jsx-scope': 'error',
    'react/jsx-uses-react': 'error',
  },
}

Testing Library

jimmy-guzman/testing-library makes an assumption that a suite of Testing Library packages are being used such as @testing-library/react, @testing-library/jest-dom and @testing-library/user-event.

Readme

Keywords

Package Sidebar

Install

npm i eslint-config-jimmy-guzman

Weekly Downloads

4

Version

14.1.0

License

MIT

Unpacked Size

48.6 kB

Total Files

15

Last publish

Collaborators

  • epic_tacho