UNPKG

@elsikora/eslint-config

Version:

ESLint configuration vision of ElsiKora

70 lines (65 loc) 2.73 kB
'use strict'; 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