@kandyr/eslint-config
Version:
Kandyr's shared ESLint configuration for consistent linting across projects.
80 lines • 2.46 kB
JavaScript
module.exports = {
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint", "prettier"],
extends: [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
],
parserOptions: {
ecmaVersion: 2020,
sourceType: "module",
ecmaFeatures: {
jsx: true,
},
},
env: {
node: true,
es6: true,
browser: true,
jest: true,
},
rules: {
"prettier/prettier": "error",
// Enable unused variables and imports checking for TypeScript
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_", // Allow unused parameters starting with _
varsIgnorePattern: "^_", // Allow unused variables starting with _
caughtErrorsIgnorePattern: "^_", // Allow unused caught errors starting with _
destructuredArrayIgnorePattern: "^_", // Allow unused destructured array elements starting with _
ignoreRestSiblings: true, // Ignore unused rest siblings in object destructuring
}
],
// Disable the base ESLint rule to avoid conflicts with TypeScript version
"no-unused-vars": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/ban-types": "off",
"no-control-regex": "off",
"no-case-declarations": "off",
"no-else-return": "error",
},
overrides: [
{
files: ["*.ts", "*.tsx"],
rules: {
// TypeScript-specific rules for unused variables
"@typescript-eslint/no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
destructuredArrayIgnorePattern: "^_",
ignoreRestSiblings: true,
}
],
},
},
{
files: ["*.js"],
rules: {
// For JavaScript files, use the base ESLint rule
"no-unused-vars": [
"error",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
destructuredArrayIgnorePattern: "^_",
ignoreRestSiblings: true,
}
],
"@typescript-eslint/no-unused-vars": "off",
},
},
],
};