UNPKG

@elsikora/eslint-config

Version:

ESLint configuration vision of ElsiKora

33 lines (30 loc) 1.62 kB
import 'eslint/use-at-your-own-risk'; import { formatConfig } from '../utility/format-config.utility.js'; import { formatRuleName } from '../utility/format-rule-name.utility.js'; import sonarjs from 'eslint-plugin-sonarjs'; const congnitiveComplexity = 100; const duplicateStringThreshold = 10; /** * Loads the ESLint configuration for SonarJS rules * @returns {Array<Linter.Config>} An array of ESLint configurations for SonarJS */ function loadConfig() { return [ { ...formatConfig([sonarjs.configs.recommended])[0], files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], }, { files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], rules: { [formatRuleName("sonarjs/bool-param-default")]: "error", // Require default values for boolean parameters to improve readability. [formatRuleName("sonarjs/cognitive-complexity")]: ["error", congnitiveComplexity], // Set a high threshold for cognitive complexity to allow complex but manageable functions. [formatRuleName("sonarjs/no-duplicate-string")]: ["error", { threshold: duplicateStringThreshold }], // Flag strings duplicated more than 10 times to encourage the use of constants for maintainability. [formatRuleName("sonarjs/no-empty-test-file")]: "off", // Prevent empty test files from being committed. [formatRuleName("sonarjs/todo-tag")]: "warn", // Flag to do comments to ensure they are addressed. }, }, ]; } export { loadConfig as default }; //# sourceMappingURL=sonar.js.map