@jimmy.codes/eslint-config
TypeScript icon, indicating that this package has built-in type declarations

5.12.0 • Public • Published

@jimmy.codes/eslint-config

GitHub Actions Workflow Status version downloads

A simple, modern ESLint config that covers most use cases.

Why Use This?

A strict-but-practical ESLint config that doesn’t require much thought. It works out of the box, adapts to your stack, and enforces good patterns without getting in the way.

  • Auto-detects dependencies – Handles React, TypeScript, Astro, Next.js, Vitest, Jest, Playwright, Storybook, and TanStack Query.
  • Prevents real issues – Focuses on rules that actually matter.
  • Fast & lightweight – Loads only what’s needed, so it won’t slow you down.
  • No setup needed – Install it, import it, done.
  • Customizable – Turn off what you don’t need.
  • Works with tests – Supports Vitest, Jest, Playwright, and Testing Library.
  • Encourages modern JS – Keeps things clean and readable.

Installation & Usage

[!NOTE]
Works best with @jimmy.codes/prettier-config.

Install

pnpm add -D @jimmy.codes/eslint-config

Basic Setup

Add this to eslint.config.ts:

import { defineConfig } from "@jimmy.codes/eslint-config";

export default defineConfig();

It’ll auto-configure based on your installed dependencies.


Customization

Disable Auto-Detection

import { defineConfig } from "@jimmy.codes/eslint-config";

export default defineConfig({ autoDetect: false });

Enable/Disable Rule Sets

import { defineConfig } from "@jimmy.codes/eslint-config";

export default defineConfig({
  astro: false,
  jest: false,
  nextjs: false,
  playwright: false,
  react: false,
  storybook: false,
  tanstackQuery: false,
  testingLibrary: false,
  typescript: false,
  vitest: false,
});

Override Specific Rules

import { defineConfig } from "@jimmy.codes/eslint-config";

export default defineConfig({
  overrides: [
    {
      files: ["**/*.js"],
      rules: {
        "prefer-spread": "error",
      },
    },
    {
      files: ["**/*.ts"],
      rules: {
        "prefer-const": "error",
      },
    },
  ],
});

Plugins Used

This config includes the following plugins:

Plugin Purpose
@eslint-community/eslint-plugin-eslint-comments ESLint directive comments
@eslint-react/eslint-plugin Modern React linting
@eslint/js Core ESLint rules
@next/eslint-plugin-next Next.js best practices
@stylistic/eslint-plugin Consistent formatting
@tanstack/eslint-plugin-query TanStack Query rules
@vitest/eslint-plugin Vitest support
eslint-config-prettier Disable formatting conflicts
eslint-plugin-astro Astro framework support
eslint-plugin-import-x Import order and hygiene
eslint-plugin-jest Jest support
eslint-plugin-jest-dom DOM assertions for tests
eslint-plugin-jsdoc JSDoc comment rules
eslint-plugin-jsx-a11y Accessibility in JSX
eslint-plugin-n Node.js-specific rules
eslint-plugin-perfectionist Sorting and consistency
eslint-plugin-playwright Playwright testing support
eslint-plugin-react-compiler React Compiler rules
eslint-plugin-react-hooks Enforce React Hooks rules
eslint-plugin-react-refresh Safe Fast Refresh boundaries
eslint-plugin-regexp RegExp best practices
eslint-plugin-storybook Storybook support
eslint-plugin-testing-library Testing Library rules
eslint-plugin-unicorn Modern JavaScript best practices
typescript-eslint TypeScript linting and type safety

Contributing

PRs and issues welcome.


Credits

Inspired by:

Package Sidebar

Install

npm i @jimmy.codes/eslint-config

Weekly Downloads

248

Version

5.12.0

License

MIT

Unpacked Size

979 kB

Total Files

19

Last publish

Collaborators

  • epic_tacho