eslint-config-galex
Version:
personal ESLint ruleset of galex
67 lines (66 loc) • 3.29 kB
JavaScript
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;
;