@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
JavaScript
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 };