UNPKG

@shayanthenerd/eslint-config

Version:

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

34 lines (32 loc) 1.31 kB
import { globs } from "../utils/globs.js"; import { isEnabled } from "../utils/isEnabled.js"; import { defaultOptions } from "../utils/options/defaultOptions.js"; import { getVueRules } from "../rules/vue.js"; import { getVueAccessibilityRules } from "../rules/vueAccessibility.js"; import typescriptESLint from "typescript-eslint"; import { mergeConfigs } from "eslint-flat-config-utils"; import eslintPluginVue from "eslint-plugin-vue"; import eslintPluginVueAccessibility from "eslint-plugin-vuejs-accessibility"; //#region src/configs/vue.ts function getVueConfig(options) { const { vue } = options.configs; const accessibility = isEnabled(vue) && isEnabled(vue.accessibility); const { overrides } = isEnabled(vue) ? vue : defaultOptions.configs.vue; const vueConfig = { name: "shayanthenerd/vue", files: [globs.vue], extends: [eslintPluginVue.configs["flat/recommended"], accessibility ? eslintPluginVueAccessibility.configs["flat/recommended"] : {}], languageOptions: { parserOptions: { parser: typescriptESLint.parser, extraFileExtensions: [".vue"], vueFeatures: { filter: false } } }, rules: { ...getVueRules(options), ...accessibility ? getVueAccessibilityRules(options) : {} } }; return mergeConfigs(vueConfig, overrides); } //#endregion export { getVueConfig };