Skip to content

jimmy-guzman/eslint-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

@jimmy.codes/eslint-config

GitHub Actions Workflow Status version downloads semantic-release code style: prettier

๐Ÿ” Another opinionated ESLint config

๐Ÿ› ๏ธ Usage

Note

For a better experience, make sure to use @jimmy.codes/prettier-config as well.

๐Ÿ”จ Getting Started

First, install the package:

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

Then, in your eslint.config.js, simply add:

import eslintConfig from "@jimmy.codes/eslint-config";

export default eslintConfig();

This automatically applies rules based on your installed dependencies.

๐Ÿ”ง Configuration

By default, this config automatically enables rules based on your installed dependencies (e.g., react, vitest). Set autoDetect: false to disable this behavior.

import eslintConfig from "@jimmy.codes/eslint-config";

export default eslintConfig({ autoDetect: false });

You can also manually enable or disable specific rule sets:

import eslintConfig from "@jimmy.codes/eslint-config";

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

Extending/Overriding the Configuration

You can extend or override the configuration using the overrides option:

import eslintConfig from "@jimmy.codes/eslint-config";

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

Alternatively, you can pass additional configurations as separate arguments:

import eslintConfig from "@jimmy.codes/eslint-config";

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

This approach is useful if you prefer to separate rule overrides into multiple objects instead of nesting them inside overrides.

Ignoring Files

You can also extend what is ignored:

import eslintConfig from "@jimmy.codes/eslint-config";

export default eslintConfig({
  ignores: ["**/*.mjs"],
});

โค๏ธ Credits