UNPKG

@shayanthenerd/eslint-config

Version:

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

30 lines (28 loc) 1.26 kB
import { globs } from "../utils/globs.js"; import { isEnabled } from "../utils/isEnabled.js"; import { defaultOptions } from "../utils/options/defaultOptions.js"; import { getTypeScriptRules } from "../rules/typescript.js"; import typescriptESLint from "typescript-eslint"; import { mergeConfigs } from "eslint-flat-config-utils"; //#region src/configs/typescript.ts function getTypeScriptConfig(options) { const { tsConfig, configs: { vue, typescript } } = options; const { allowedDefaultProjects } = isEnabled(typescript) ? typescript : defaultOptions.configs.typescript; const { overrides } = isEnabled(typescript) ? typescript : defaultOptions.configs.typescript; const typescriptConfig = { name: "shayanthenerd/typescript", files: [globs.ts, vue ? globs.vue : ""], extends: [typescriptESLint.configs.strictTypeChecked, typescriptESLint.configs.stylisticTypeChecked], languageOptions: { parserOptions: { tsconfigRootDir: tsConfig ? tsConfig.rootDir : void 0, projectService: { allowDefaultProject: allowedDefaultProjects, defaultProject: tsConfig ? tsConfig.filename : void 0 } } }, rules: getTypeScriptRules(options) }; return mergeConfigs(typescriptConfig, overrides); } //#endregion export { getTypeScriptConfig };