@addon24/eslint-config
Version:
ESLint configuration rules for WorldOfTextcraft projects - Centralized configuration for all project types
93 lines (83 loc) • 2.5 kB
JavaScript
/**
* Node.js ESLint Configuration
*
* Spezielle Konfiguration für Node.js-Projekte
* Kombiniert TypeScript, Styling und Node.js-spezifische Regeln
*/
import stylisticPlugin from "@stylistic/eslint-plugin";
import typescriptEslint from "@typescript-eslint/eslint-plugin";
import typescriptParser from "@typescript-eslint/parser";
import importPlugin from "eslint-plugin-import";
import sonarjsPlugin from "eslint-plugin-sonarjs";
import globals from "globals";
// Importiere alle Regeldateien
import bestPractices from '../rules/best-practices.js';
import es6 from '../rules/es6.js';
import imports from '../rules/imports.js';
import node from '../rules/node.js';
import stylistic from '../rules/stylistic.js';
import typescriptAdvanced from '../rules/typescript-advanced.js';
import typescriptCore from '../rules/typescript-core.js';
import variables from '../rules/variables.js';
const tsParserWithOptions = {
parser: typescriptParser,
parserOptions: {
project: ["./tsconfig.json"],
tsconfigRootDir: process.cwd(),
createDefaultProgram: true,
ecmaFeatures: {
jsx: false,
},
},
};
export default [
{
ignores: [
"node_modules/**",
"dist/**",
"build/**",
"coverage/**",
"cache/**",
"assets/**",
"*.config.js",
"*.config.ts",
],
},
{
files: ["**/*.{js,ts}"],
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
globals: globals.node,
...tsParserWithOptions,
},
plugins: {
"@typescript-eslint": typescriptEslint,
"@stylistic": stylisticPlugin,
import: importPlugin,
sonarjs: sonarjsPlugin,
},
rules: {
// Kombiniere alle Regeldateien
...typescriptCore.rules,
...typescriptAdvanced.rules,
...stylistic.rules,
...imports.rules,
...bestPractices.rules,
...es6.rules,
...node.rules,
...variables.rules,
// SonarJS-Regeln für Code-Qualität und Sicherheit
"sonarjs/no-identical-expressions": "error",
"sonarjs/no-identical-functions": "error",
"sonarjs/no-redundant-boolean": "error",
"sonarjs/no-redundant-jump": "error",
"sonarjs/no-unused-collection": "error",
"sonarjs/no-use-of-empty-return-value": "error",
"sonarjs/prefer-immediate-return": "error",
"sonarjs/prefer-object-literal": "error",
"sonarjs/prefer-single-boolean-return": "error",
"sonarjs/prefer-while": "error",
},
},
];