UNPKG

eslint-config-galex

Version:
67 lines (66 loc) 3.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createConfig = void 0; const getDependencies_1 = require("./getDependencies"); const jest_1 = require("./overrides/jest"); const react_1 = require("./overrides/react"); const storybook_1 = require("./overrides/storybook"); const typescript_1 = require("./overrides/typescript"); const eslint_core_1 = require("./plugins/eslint-core"); const import_1 = require("./plugins/import"); const import_sort_1 = require("./plugins/import-sort"); const promise_1 = require("./plugins/promise"); const sonarjs_1 = require("./plugins/sonarjs"); const tailwindcss_1 = require("./plugins/tailwindcss"); const unicorn_1 = require("./plugins/unicorn"); const defaultsAndDetection_1 = require("./utils/defaultsAndDetection"); const flags_1 = require("./utils/flags"); const overrideType_1 = require("./utils/overrideType"); const createConfig = ({ cwd, tsConfigPath, convertToESLintInternals = false, incrementalAdoption = false, blankSlate = false, enableJavaScriptSpecificRulesInTypeScriptProject = false, root = true, ignorePatterns, env, overrides, parserOptions, rules, plugins, settings, } = {}) => { const dependencies = (0, getDependencies_1.getDependencies)({ cwd, tsConfigPath }); const flags = { convertToESLintInternals, incrementalAdoption, blankSlate, }; const finalOverrides = (0, overrideType_1.mergeSortOverrides)([ (0, react_1.createReactOverride)(dependencies), (0, typescript_1.createTypeScriptOverride)(dependencies), (0, jest_1.createJestOverride)(dependencies), (0, storybook_1.createStorybookOverride)(dependencies), (0, jest_1.createJestConfigOverride)(dependencies), (0, eslint_core_1.eslintDefaultRulesTypeScriptOverride)(dependencies, enableJavaScriptSpecificRulesInTypeScriptProject), ...(overrides ?? []), ].filter((override) => override !== null)).map(overrideWithType => { const override = (0, overrideType_1.dropOverrideType)(overrideWithType); return { ...override, rules: (0, flags_1.applyFlags)(override.rules, flags), }; }); const finalRules = (0, flags_1.applyFlags)({ ...(0, eslint_core_1.createEslintCoreRules)(dependencies), ...(0, unicorn_1.createUnicornRules)(dependencies), ...(0, promise_1.createPromiseRules)(dependencies), ...(0, import_1.createImportRules)(dependencies), ...(0, sonarjs_1.createSonarjsRules)(dependencies), ...(0, import_sort_1.createSimpleImportSortRules)(dependencies), ...(0, tailwindcss_1.createTailwindRules)(dependencies), ...rules, }, flags); const finalPlugins = (0, defaultsAndDetection_1.detectPlugins)(dependencies, plugins); const finalEnv = (0, defaultsAndDetection_1.detectEnv)(dependencies, env); const finalParserOptions = (0, defaultsAndDetection_1.detectParserOptions)(parserOptions); return { env: finalEnv, overrides: finalOverrides, parserOptions: finalParserOptions, plugins: finalPlugins, rules: finalRules, ignorePatterns, reportUnusedDisableDirectives: true, settings, root, }; }; exports.createConfig = createConfig;