UNPKG

@elsikora/eslint-config

Version:

ESLint configuration vision of ElsiKora

37 lines (32 loc) 1.85 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); require('eslint/use-at-your-own-risk'); var formatConfig_utility = require('../utility/format-config.utility.js'); var formatRuleName_utility = require('../utility/format-rule-name.utility.js'); var sonarjs = require('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_utility.formatConfig([sonarjs.configs.recommended])[0], files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], }, { files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], rules: { [formatRuleName_utility.formatRuleName("sonarjs/bool-param-default")]: "error", // Require default values for boolean parameters to improve readability. [formatRuleName_utility.formatRuleName("sonarjs/cognitive-complexity")]: ["error", congnitiveComplexity], // Set a high threshold for cognitive complexity to allow complex but manageable functions. [formatRuleName_utility.formatRuleName("sonarjs/no-duplicate-string")]: ["error", { threshold: duplicateStringThreshold }], // Flag strings duplicated more than 10 times to encourage the use of constants for maintainability. [formatRuleName_utility.formatRuleName("sonarjs/no-empty-test-file")]: "off", // Prevent empty test files from being committed. [formatRuleName_utility.formatRuleName("sonarjs/todo-tag")]: "warn", // Flag to do comments to ensure they are addressed. }, }, ]; } exports.default = loadConfig; //# sourceMappingURL=sonar.js.map