@elsikora/eslint-config
Version:
ESLint configuration vision of ElsiKora
59 lines (54 loc) • 2.63 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 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