A modern and opinionated ESLint configuration with TypeScript and JSX support.
Using npm:
npm install -D @echristian/eslint-config eslint
Using yarn:
yarn add -D @echristian/eslint-config eslint
Using pnpm:
pnpm add -D @echristian/eslint-config eslint
Create an eslint.config.js
file in your project root:
import eslintConfig from "@echristian/eslint-config";
export default eslintConfig({
// Configuration options here
});
The configuration function accepts an options object with the following structure:
interface ESLintConfigOptions {
// Glob patterns to ignore
ignores?: Array<string>
// TypeScript configuration
typescript?: {
enabled: boolean // defaults to true
options?: {
typeChecked?: boolean // defaults to true
}
}
// React Hooks configuration
reactHooks?: {
enabled: boolean // defaults to false
}
// Package.json rules configuration
packageJson?: {
options?: {
public?: boolean // defaults to true
}
}
}
Default configuration:
const defaults = {
ignores: [],
typescript: {
enabled: true,
options: {
typeChecked: true,
},
},
reactHooks: {
enabled: false,
},
packageJson: {
options: {
public: true,
},
},
}
import eslintConfig from "@echristian/eslint-config";
export default eslintConfig({
ignores: ["dist/"],
});
import eslintConfig from "@echristian/eslint-config";
export default eslintConfig({
typescript: {
enabled: true,
options: {
typeChecked: false,
},
},
});
import eslintConfig from "@echristian/eslint-config";
export default eslintConfig({
reactHooks: {
enabled: true
}
});
import eslintConfig from "@echristian/eslint-config";
export default eslintConfig({
packageJson: {
options: {
public: false
}
}
});
This config includes the following major dependencies:
@eslint/js
: Core ESLint rules@eslint/json
: JSON supporttypescript-eslint
: TypeScript support@stylistic/eslint-plugin
: Style-related ruleseslint-plugin-unused-imports
: Unused imports managementeslint-plugin-perfectionist
: Additional best practiceseslint-plugin-prettier
: Prettier integrationeslint-plugin-regexp
: Regular expression lintingeslint-plugin-de-morgan
: Logical expression optimizationeslint-plugin-package-json
: Package.json validationeslint-plugin-react-hooks
: React Hooks linting rules
MIT - See LICENSE for more information.