🔍 another opinionated eslint config
This is an evolution of eslint-config-jimmy-guzman
For a better experience, make sure to use @jimmy.codes/prettier-config as well
First install the package, by running the following:
pnpm add -D @jimmy.codes/eslint-config
Then if you want a simple configuration:
// eslint.config.mjs
import jimmyDotCodes from "@jimmy.codes/eslint-config";
export default jimmyDotCodes();
And if you're using VS Code, make sure to enable flat configuration:
// .vscode/settings.json
{
"eslint.experimental.useFlatConfig": true,
}
This package contains rules that can be enabled or disabled as follows:
import jimmyDotCodes from "@jimmy.codes/eslint-config";
export default jimmyDotCodes({
/**
* Are TypeScript rules are enabled?
* @default false
*/
typescript: true,
/**
* Are React rules are enabled?
* @default false
*/
react: true,
/**
* Are Astro rules are enabled?
* @default false
*/
astro: true,
/**
* Are testing rules are enabled?
* @default false
*/
testing: true,
});
Or you can enable auto detection to enable rules based on a project's dependencies
import jimmyDotCodes from "@jimmy.codes/eslint-config";
export default jimmyDotCodes({ autoDetect: true });
You can also change the project location which can be helpful for monorepos:
import jimmyDotCodes from "@jimmy.codes/eslint-config";
export default jimmyDotCodes({
typescript: {
project: ["./tsconfig.eslint.json", "./packages/*/tsconfig.json"],
},
});
By default vitest is used as the testing framework but you can override and add additional rules for utilities:
import jimmyDotCodes from "@jimmy.codes/eslint-config";
export default jimmyDotCodes({
testing: {
framework: "jest",
utilities: ["testing-library"],
},
});
You can add additional rules for utilities:
import jimmyDotCodes from "@jimmy.codes/eslint-config";
export default jimmyDotCodes({
react: {
utilities: ["@tanstack/query"],
},
});
You can also extend or override the configuration:
import jimmyDotCodes from "@jimmy.codes/eslint-config";
export default jimmyDotCodes({
overrides: [
{
rules: {
"prefer-const": "error",
},
},
{
files: ["/**/*.js"],
rules: {
semi: "error",
},
},
],
});