@elsikora/eslint-config
Version:
ESLint configuration vision of ElsiKora
55 lines (50 loc) • 3.8 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 formatPluginName_utility = require('../utility/format-plugin-name.utility.js');
var formatRuleName_utility = require('../utility/format-rule-name.utility.js');
var stylistic = require('@stylistic/eslint-plugin');
/**
* Loads the ESLint configuration for code style and formatting
* @returns {Array<Linter.Config>} An array of ESLint configurations for stylistic rules
*/
function loadConfig() {
return [
{
...formatConfig_utility.formatConfig([stylistic.configs.recommended])[0],
plugins: {
[formatPluginName_utility.formatPluginName("@stylistic")]: stylistic,
},
rules: {
[formatRuleName_utility.formatRuleName("@stylistic/brace-style")]: ["error", "1tbs", { allowSingleLine: false }], // Enforce "one true brace style" for consistent brace positioning in control statements and functions, disallowing single-line blocks.
[formatRuleName_utility.formatRuleName("@stylistic/comma-spacing")]: "error", // Require a space after commas for improved readability in lists, object literals, etc.
[formatRuleName_utility.formatRuleName("@stylistic/function-call-spacing")]: "error", // Enforce no space between the function name and the parentheses when calling a function for consistency.
[formatRuleName_utility.formatRuleName("@stylistic/lines-between-class-members")]: "error", // Require an empty line between class members to improve class readability and organization.
[formatRuleName_utility.formatRuleName("@stylistic/object-curly-spacing")]: ["error", "always"], // Enforce spacing inside curly braces of objects for better readability.
[formatRuleName_utility.formatRuleName("@stylistic/padding-line-between-statements")]: [
"error",
{ blankLine: "always", next: "switch", prev: "*" },
{ blankLine: "always", next: "function", prev: "*" },
{ blankLine: "always", next: "return", prev: "*" },
{ blankLine: "always", next: "multiline-const", prev: "*" },
{ blankLine: "always", next: "multiline-let", prev: "*" },
{ blankLine: "always", next: "block", prev: "*" },
{ blankLine: "always", next: "block-like", prev: "*" },
{ blankLine: "always", next: "class", prev: "*" },
{ blankLine: "always", next: "try", prev: "*" },
{ blankLine: "always", next: "throw", prev: "*" },
{ blankLine: "always", next: "if", prev: "*" },
{ blankLine: "always", next: "for", prev: "*" },
{ blankLine: "always", next: "default", prev: "*" },
{ blankLine: "always", next: "case", prev: "*" },
{ blankLine: "always", next: "break", prev: "*" },
], // Each specifies required blank lines around certain statements to ensure consistent vertical spacing and sectioning of code for readability.
[formatRuleName_utility.formatRuleName("@stylistic/space-before-blocks")]: "error", // Require a space before the opening brace of blocks to distinguish blocks from control statements or declarations more clearly.
[formatRuleName_utility.formatRuleName("@stylistic/spaced-comment")]: "error", // Enforce consistent spacing after the comment delimiters (// or /*) for readability.
},
},
];
}
exports.default = loadConfig;
//# sourceMappingURL=stylistic.js.map