From 5caec41d9628c4b91a8e55fcfe70f293a70e3d70 Mon Sep 17 00:00:00 2001 From: James Brunton Date: Fri, 5 Sep 2025 11:15:36 +0100 Subject: [PATCH] Enable ESLint no-empty-object-type rule (#4354) # Description of Changes Enable ESLint [no-empty-object-type rule](https://typescript-eslint.io/rules/no-empty-object-type/) --- frontend/eslint.config.mjs | 8 +++++++- .../components/tools/shared/SuggestedToolsSection.tsx | 2 -- frontend/src/types/parameters.ts | 9 ++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/frontend/eslint.config.mjs b/frontend/eslint.config.mjs index 502ec4f71..d823a6af9 100644 --- a/frontend/eslint.config.mjs +++ b/frontend/eslint.config.mjs @@ -16,7 +16,13 @@ export default defineConfig( { rules: { "no-undef": "off", // Temporarily disabled until codebase conformant - "@typescript-eslint/no-empty-object-type": "off", // Temporarily disabled until codebase conformant + "@typescript-eslint/no-empty-object-type": [ + "error", + { + // Allow empty extending interfaces because there's no real reason not to, and it makes it obvious where to put extra attributes in the future + allowInterfaces: 'with-single-extends', + }, + ], "@typescript-eslint/no-explicit-any": "off", // Temporarily disabled until codebase conformant "@typescript-eslint/no-require-imports": "off", // Temporarily disabled until codebase conformant "@typescript-eslint/no-unused-vars": "off", // Temporarily disabled until codebase conformant diff --git a/frontend/src/components/tools/shared/SuggestedToolsSection.tsx b/frontend/src/components/tools/shared/SuggestedToolsSection.tsx index fca3b5e56..c1299a749 100644 --- a/frontend/src/components/tools/shared/SuggestedToolsSection.tsx +++ b/frontend/src/components/tools/shared/SuggestedToolsSection.tsx @@ -3,8 +3,6 @@ import { Stack, Text, Divider, Card, Group } from '@mantine/core'; import { useTranslation } from 'react-i18next'; import { useSuggestedTools } from '../../../hooks/useSuggestedTools'; -export interface SuggestedToolsSectionProps {} - export function SuggestedToolsSection(): React.ReactElement { const { t } = useTranslation(); const suggestedTools = useSuggestedTools(); diff --git a/frontend/src/types/parameters.ts b/frontend/src/types/parameters.ts index 6f8856a8b..91355cb81 100644 --- a/frontend/src/types/parameters.ts +++ b/frontend/src/types/parameters.ts @@ -1,7 +1,6 @@ // Base parameter interfaces for reusable patterns -export interface BaseParameters { - // Base interface that all tool parameters should extend - // Provides a foundation for adding common properties across all tools - // Examples of future additions: userId, sessionId, commonFlags, etc. -} \ No newline at end of file +// Base interface that all tool parameters should extend +// Provides a foundation for adding common properties across all tools +// Examples of future additions: userId, sessionId, commonFlags, etc. +export type BaseParameters = object