@elsikora/eslint-config
Version:
ESLint configuration vision of ElsiKora
70 lines (65 loc) • 2.73 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var eslintPluginFeatureSliced = require('@conarti/eslint-plugin-feature-sliced');
require('eslint/use-at-your-own-risk');
var formatPluginName_utility = require('../utility/format-plugin-name.utility.js');
var formatRuleName_utility = require('../utility/format-rule-name.utility.js');
var fsdLintPlugin = require('eslint-plugin-fsd-lint');
var tseslint = require('typescript-eslint');
const conartiFeatureSlicedPlugin = eslintPluginFeatureSliced.plugin;
const fsdLint = fsdLintPlugin;
/**
* Loads the ESLint configuration for Feature-Sliced Design architecture
* @returns {Array<Linter.Config>} An array of ESLint configurations for FSD
*/
function loadConfig() {
return [
{
plugins: {
[formatPluginName_utility.formatPluginName("@conarti/feature-sliced")]: conartiFeatureSlicedPlugin,
[formatPluginName_utility.formatPluginName("fsd")]: fsdLint,
},
rules: {
[formatRuleName_utility.formatRuleName("@conarti/feature-sliced/no-cross-segment-reexport")]: "error",
[formatRuleName_utility.formatRuleName("fsd/forbidden-imports")]: "error",
[formatRuleName_utility.formatRuleName("fsd/no-cross-slice-dependency")]: "error",
[formatRuleName_utility.formatRuleName("fsd/no-global-store-imports")]: "error",
[formatRuleName_utility.formatRuleName("fsd/no-public-api-sidestep")]: [
"error",
{
publicApi: {
allowSegmentImports: false,
enforceShared: true,
},
},
],
[formatRuleName_utility.formatRuleName("fsd/no-relative-imports")]: "error",
[formatRuleName_utility.formatRuleName("fsd/no-ui-in-business-logic")]: "error",
[formatRuleName_utility.formatRuleName("fsd/ordered-imports")]: "error",
},
},
{
files: ["**/*.ts", "**/*.tsx"],
languageOptions: {
// @ts-ignore
parser: tseslint.parser,
parserOptions: {
projectService: true,
},
},
},
{
files: ["**/*.js", "**/*.jsx"],
languageOptions: {
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: "latest",
},
},
},
];
}
exports.default = loadConfig;
//# sourceMappingURL=fsd.js.map