UNPKG

@shayanthenerd/eslint-config

Version:

A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style

34 lines (33 loc) 1.18 kB
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 { getPerfectionistRules } from "../rules/perfectionist.mjs"; import { mergeConfigs } from "eslint-flat-config-utils"; import eslintPluginPerfectionist from "eslint-plugin-perfectionist"; //#region src/configs/perfectionist.ts function getPerfectionistConfig(options) { const { vue, astro, perfectionist } = options.configs; const { sortType, overrides } = isEnabled(perfectionist) ? perfectionist : defaultOptions.configs.perfectionist; return mergeConfigs({ name: "shayanthenerd/perfectionist", files: [ globs.src, globs.jsxTsx, isEnabled(vue) ? globs.vue : "", isEnabled(astro) ? globs.astro : "" ].filter(isTruthy), plugins: { perfectionist: eslintPluginPerfectionist }, settings: { perfectionist: { type: sortType, specialCharacters: "trim", fallbackSort: { order: "asc", type: "natural" } } }, rules: getPerfectionistRules(options) }, overrides); } //#endregion export { getPerfectionistConfig };