import js from "@eslint/js"; import globals from "globals"; import reactHooks from "eslint-plugin-react-hooks"; import reactRefresh from "eslint-plugin-react-refresh"; import tseslint from "typescript-eslint"; export default tseslint.config( { ignores: ["dist"] }, { extends: [js.configs.recommended, ...tseslint.configs.recommended], files: ["**/*.{ts,tsx}"], languageOptions: { ecmaVersion: 2020, globals: globals.browser, }, plugins: { "react-hooks": reactHooks, "react-refresh": reactRefresh, }, rules: { ...reactHooks.configs.recommended.rules, "react-refresh/only-export-components": ["warn", { allowConstantExport: true, allowExportNames: ["toast", "buttonVariants", "toggleVariants"], }], "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-empty-object-type": "off", "@typescript-eslint/no-require-imports": "off", "@typescript-eslint/no-unused-expressions": "off", "no-empty": "off", }, }, { // lib/zod.ts turns off zod's eval probe before any schema is built; a // direct import could build one first, and the CSP reports the probe. files: ["**/*.{ts,tsx}"], ignores: ["src/lib/zod.ts"], rules: { "no-restricted-imports": ["error", { paths: [{ name: "zod", message: "Import z from @/lib/zod, which sets jitless before any schema is built." }], patterns: [{ group: ["zod/*"], message: "Import z from @/lib/zod, which sets jitless before any schema is built." }], }], }, }, );