UNPKG

@addon24/eslint-config

Version:

ESLint configuration rules for WorldOfTextcraft projects - Centralized configuration for all project types

93 lines (83 loc) 2.5 kB
/** * 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", }, }, ];