From a87e5b8eeb6527ded103a2566ec3d36b79cf423f Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Tue, 23 Jun 2026 22:26:14 -0700 Subject: [PATCH] chore: Enforce interfaces for object types (#2544) --- eslint.config.mjs | 1 + src/camera-manager/utils/go2rtc/endpoint.ts | 4 ++-- src/card-controller/effects/types.ts | 4 +++- src/components-lib/media-actions-controller.ts | 4 ++-- src/patches/types.ts | 4 +++- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 4bbda9a9..b4582d57 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -64,6 +64,7 @@ export default defineConfig([ rules: { curly: 'error', 'local/no-em-dash': 'error', + '@typescript-eslint/consistent-type-definitions': ['error', 'interface'], '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/no-non-null-assertion': 'error', '@typescript-eslint/parameter-properties': 'error', diff --git a/src/camera-manager/utils/go2rtc/endpoint.ts b/src/camera-manager/utils/go2rtc/endpoint.ts index 59369269..fb211207 100644 --- a/src/camera-manager/utils/go2rtc/endpoint.ts +++ b/src/camera-manager/utils/go2rtc/endpoint.ts @@ -1,10 +1,10 @@ import { CameraConfig } from '../../../config/schema/cameras'; import { Endpoint } from '../../../types'; -type EndpointOptions = { +interface EndpointOptions { url?: string; stream?: string; -}; +} const buildGo2RTCEndpoint = ( cameraConfig: CameraConfig, diff --git a/src/card-controller/effects/types.ts b/src/card-controller/effects/types.ts index ca5a491f..3e4e37ae 100644 --- a/src/card-controller/effects/types.ts +++ b/src/card-controller/effects/types.ts @@ -3,7 +3,9 @@ export type EffectComponent = HTMLElement & { startFadeOut(): Promise; }; -export type EffectModule = { default: new () => EffectComponent }; +export interface EffectModule { + default: new () => EffectComponent; +} export interface EffectOptions { fadeIn?: boolean; diff --git a/src/components-lib/media-actions-controller.ts b/src/components-lib/media-actions-controller.ts index b44e6768..cf134986 100644 --- a/src/components-lib/media-actions-controller.ts +++ b/src/components-lib/media-actions-controller.ts @@ -29,10 +29,10 @@ type RenderRoot = HTMLElement; * start the video. */ -type MediaActionsTarget = { +interface MediaActionsTarget { selected: boolean; index: number; -}; +} export class MediaActionsController { private _options: MediaActionsControllerOptions | null = null; diff --git a/src/patches/types.ts b/src/patches/types.ts index 8ffcfec3..802d29c4 100644 --- a/src/patches/types.ts +++ b/src/patches/types.ts @@ -1,3 +1,5 @@ import { LitElement } from 'lit'; -export type ConstructableLitElement = { new (...args: unknown[]): LitElement }; +export interface ConstructableLitElement { + new (...args: unknown[]): LitElement; +}