UNPKG

@shayanthenerd/eslint-config

Version:

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

27 lines (26 loc) 1 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 { getZodRules } from "../rules/zod.mjs"; import { mergeConfigs } from "eslint-flat-config-utils"; import eslintPluginZod from "eslint-plugin-zod"; import eslintPluginZodMini from "eslint-plugin-zod-mini"; //#region src/configs/zod.ts function getZodConfig(options) { const { zod, vue, astro } = options.configs; const { mini, overrides } = isEnabled(zod) ? zod : defaultOptions.configs.zod; return mergeConfigs({ name: `shayanthenerd/${mini ? "zod-mini" : "zod"}`, files: [ globs.src, globs.jsxTsx, isEnabled(vue) ? globs.vue : "", isEnabled(astro) ? globs.astro : "" ].filter(isTruthy), plugins: mini ? { "zod-mini": eslintPluginZodMini } : { zod: eslintPluginZod }, rules: getZodRules(options) }, overrides); } //#endregion export { getZodConfig };