UNPKG

@shayanthenerd/eslint-config

Version:

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

41 lines (40 loc) 1.45 kB
import { globs } from "../helpers/globs.mjs"; import { isEnabled } from "../utils/isEnabled.mjs"; import { defaultOptions } from "../helpers/options/defaultOptions.mjs"; import { getVueRules } from "../rules/vue.mjs"; import { mergeConfigs } from "eslint-flat-config-utils"; import eslintPluginVue from "eslint-plugin-vue"; import { parser } from "typescript-eslint"; import eslintPluginVueAccessibility from "eslint-plugin-vuejs-accessibility"; //#region src/configs/vue.ts const baseVueConfig = eslintPluginVue.configs["flat/base"].find((config) => config.languageOptions?.parser); function getVueConfig(options) { const { vue } = options.configs; const { overrides } = isEnabled(vue) ? vue : defaultOptions.configs.vue; const isVueAccessibilityEnabled = isEnabled(vue) && isEnabled(vue.accessibility); return mergeConfigs({ name: "shayanthenerd/vue", files: [ globs.src, globs.jsxTsx, globs.vue ], plugins: { vue: eslintPluginVue, ...isVueAccessibilityEnabled && { "vuejs-accessibility": eslintPluginVueAccessibility } }, processor: "vue/vue", languageOptions: { globals: eslintPluginVueAccessibility.configs["flat/recommended"][0].languageOptions.globals, parser: baseVueConfig?.languageOptions?.parser, parserOptions: { parser, extraFileExtensions: [".vue"], vueFeatures: { filter: false } } }, rules: getVueRules(options) }, overrides); } //#endregion export { getVueConfig };