diff --git a/eslint.config.mjs b/eslint.config.mjs index 05e726d1..e617b549 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,18 +1,72 @@ -import { defineConfig, globalIgnores } from "eslint/config"; -import nextVitals from "eslint-config-next/core-web-vitals"; -import nextTs from "eslint-config-next/typescript"; +import js from "@eslint/js"; +import nextPlugin from "@next/eslint-plugin-next"; +import tseslint from "@typescript-eslint/eslint-plugin"; +import tsparser from "@typescript-eslint/parser"; +import reactPlugin from "eslint-plugin-react"; +import reactHooksPlugin from "eslint-plugin-react-hooks"; -const eslintConfig = defineConfig([ - ...nextVitals, - ...nextTs, - // Override default ignores of eslint-config-next. - globalIgnores([ - // Default ignores of eslint-config-next: - ".next/**", - "out/**", - "build/**", - "next-env.d.ts", - ]), -]); +const eslintConfig = [ + { + ignores: [ + ".next/**", + "out/**", + "build/**", + "dist/**", + "node_modules/**", + "next-env.d.ts", + ], + }, + js.configs.recommended, + { + files: ["**/*.{js,jsx,mjs}"], + plugins: { + "@next/next": nextPlugin, + "react": reactPlugin, + "react-hooks": reactHooksPlugin, + }, + rules: { + ...nextPlugin.configs.recommended.rules, + ...nextPlugin.configs["core-web-vitals"].rules, + }, + }, + { + files: ["**/*.{ts,tsx}"], + languageOptions: { + parser: tsparser, + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + ecmaFeatures: { + jsx: true, + }, + }, + globals: { + React: "readonly", + console: "readonly", + process: "readonly", + __dirname: "readonly", + __filename: "readonly", + Buffer: "readonly", + }, + }, + plugins: { + "@typescript-eslint": tseslint, + "@next/next": nextPlugin, + "react": reactPlugin, + "react-hooks": reactHooksPlugin, + }, + rules: { + ...tseslint.configs.recommended.rules, + ...nextPlugin.configs.recommended.rules, + ...nextPlugin.configs["core-web-vitals"].rules, + "react/react-in-jsx-scope": "off", + "@typescript-eslint/no-explicit-any": "warn", + "@typescript-eslint/no-unused-vars": ["error", { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_" + }], + }, + }, +]; export default eslintConfig; diff --git a/src/middleware.ts b/src/middleware.ts index e2f3c440..48e0d72e 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -96,8 +96,9 @@ function isProtectedPath(pathname: string): boolean { /** * Check if the path is public and accessible to all + * Note: Currently unused but kept for future use */ -function isPublicPath(pathname: string): boolean { +function _isPublicPath(pathname: string): boolean { return PUBLIC_PATHS.some(path => pathname === path || pathname.startsWith(path)); }