UNPKG

@elsikora/eslint-config

Version:

ESLint configuration vision of ElsiKora

59 lines (54 loc) 2.63 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 perfectionist = require('eslint-plugin-perfectionist'); /** * Loads the ESLint configuration for perfectionist (sorting imports, etc.) * @param {IConfigOptions} config - Configuration options * @returns {Array<Linter.Config>} An array of ESLint configurations for perfectionist */ function loadConfig(config) { const fsdInternalPatterns = ["^.*app($|/.*$)", "^.*processes($|/.*$)", "^.*pages($|/.*$)", "^.*widgets($|/.*$)", "^.*features($|/.*$)", "^.*entities($|/.*$)", "^.*shared($|/.*$)"]; return [ { ...formatConfig_utility.formatConfig([perfectionist.configs["recommended-alphabetical"]])[0], files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], }, { files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], rules: { [formatRuleName_utility.formatRuleName("perfectionist/sort-imports")]: config.withFsd ? [ "error", { groups: ["builtin", "external", "internal", "parent", "sibling", "index", "unknown"], ignoreCase: true, internalPattern: fsdInternalPatterns, newlinesBetween: 0, order: "asc", partitionByComment: false, partitionByNewLine: false, type: "alphabetical", }, ] : [ "error", { environment: "node", groups: ["type-builtin", "type-import", "type-external", "type-internal", "type-parent", "type-sibling", "type-index", "builtin", "external", "internal", "parent", "sibling", "index", "style", "side-effect", "unknown"], ignoreCase: false, newlinesBetween: 1, order: "asc", sortSideEffects: true, specialCharacters: "keep", type: "alphabetical", }, ], }, }, ]; } exports.default = loadConfig; //# sourceMappingURL=perfectionist.js.map