Skip to content

Latest commit

 

History

History
127 lines (95 loc) · 3.32 KB

README.md

File metadata and controls

127 lines (95 loc) · 3.32 KB

@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