From 38b3a8f55ca96938db92fa06c0d171bf544ffe3b Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Thu, 19 Feb 2026 16:39:16 +1100 Subject: [PATCH] fix(core): fix circular import and simplify media types (#569) --- packages/core/src/dom/index.ts | 1 - packages/core/src/dom/media/hls.ts | 3 ++- packages/core/src/dom/media/types.ts | 2 +- packages/react/src/utils/attach-media-element.ts | 7 +++++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/core/src/dom/index.ts b/packages/core/src/dom/index.ts index e1f57da7..c6c1f792 100644 --- a/packages/core/src/dom/index.ts +++ b/packages/core/src/dom/index.ts @@ -1,5 +1,4 @@ export * from './feature'; -export type { AudioApiProxy, MediaApiProxy, MediaApiProxyTarget, VideoApiProxy } from './media/proxy'; export * from './media/types'; export * from './store/features'; export * from './store/selectors'; diff --git a/packages/core/src/dom/media/hls.ts b/packages/core/src/dom/media/hls.ts index f574198f..c6f74ff2 100644 --- a/packages/core/src/dom/media/hls.ts +++ b/packages/core/src/dom/media/hls.ts @@ -1,6 +1,7 @@ -import type { MediaApiProxyTarget } from '@videojs/core'; import type { AnyConstructor } from '@videojs/utils/types'; import Hls from 'hls.js'; + +import type { MediaApiProxyTarget } from '../../core/media/proxy'; import { VideoApiProxy } from './proxy'; // This is used by the web component because it needs to extend HTMLElement! diff --git a/packages/core/src/dom/media/types.ts b/packages/core/src/dom/media/types.ts index ce791431..4a6601e4 100644 --- a/packages/core/src/dom/media/types.ts +++ b/packages/core/src/dom/media/types.ts @@ -19,7 +19,7 @@ export type MediaBaseApi = { export type MediaApi = WithOptional; -export type Media = MediaApi | HTMLMediaElement | HTMLAudioElement | HTMLVideoElement | null; +export type Media = HTMLMediaElement | HTMLAudioElement | HTMLVideoElement; export interface MediaContainer extends HTMLElement {} diff --git a/packages/react/src/utils/attach-media-element.ts b/packages/react/src/utils/attach-media-element.ts index 84a2c414..12478159 100644 --- a/packages/react/src/utils/attach-media-element.ts +++ b/packages/react/src/utils/attach-media-element.ts @@ -1,6 +1,9 @@ -import type { MediaApiProxy } from '@videojs/core/dom'; +interface Attachable { + attach(target: EventTarget): void; + detach(): void; +} -export function attachMediaElement(media: MediaApiProxy): (element: T | null) => void { +export function attachMediaElement(media: Attachable): (element: T | null) => void { return (element: T | null) => { if (element) { media.attach(element);