@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
27 lines (26 loc) • 1.04 kB
JavaScript
import { isTruthy } from "../utils/isTruthy.mjs";
import { globs } from "../helpers/globs.mjs";
import { isEnabled } from "../utils/isEnabled.mjs";
import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
import { getImportXRules } from "../rules/importX.mjs";
import { mergeConfigs } from "eslint-flat-config-utils";
import eslintPluginImportX from "eslint-plugin-import-x";
//#region src/configs/importX.ts
function getImportXConfig(options) {
const { vue, astro, importX, typescript } = options.configs;
const { overrides } = isEnabled(importX) ? importX : defaultOptions.configs.importX;
return mergeConfigs({
name: "shayanthenerd/import-x",
files: [
globs.src,
globs.jsxTsx,
isEnabled(vue) ? globs.vue : "",
isEnabled(astro) ? globs.astro : ""
].filter(isTruthy),
plugins: { "import-x": eslintPluginImportX },
settings: isEnabled(typescript) ? eslintPluginImportX.flatConfigs.typescript.settings : {},
rules: getImportXRules(options)
}, overrides);
}
//#endregion
export { getImportXConfig };