@elsikora/eslint-config
Version:
ESLint configuration vision of ElsiKora
37 lines (32 loc) • 1.85 kB
JavaScript
;
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