From 87105db6be31038fc92862c240898984d02932eb Mon Sep 17 00:00:00 2001 From: Christian Pillsbury Date: Mon, 18 Aug 2025 11:30:09 -0500 Subject: [PATCH] fix: Clean up more typescript errors. --- packages/core/media-store/src/factory.ts | 10 +++++----- packages/core/media/src/playable.ts | 10 ++++++---- .../html/html-media-elements/src/media-provider.ts | 4 +--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/core/media-store/src/factory.ts b/packages/core/media-store/src/factory.ts index 1216c7ac..80bbdd48 100644 --- a/packages/core/media-store/src/factory.ts +++ b/packages/core/media-store/src/factory.ts @@ -30,7 +30,9 @@ export type ReadonlyFacadeProp = { export type FacadeProp = ReadonlyFacadeProp & { set: FacadeSetter; /** @TODO We probably need to refactor this for more complex cases where we can't simply translate to a setter */ - actions: { [k: string]: (val: CustomEvent) => ReturnType> }; + actions: { + [k: string]: (val: CustomEvent) => ReturnType>; + }; }; export type StateMediator = { @@ -99,8 +101,6 @@ export function createMediaStore({ )) { const { set, actions } = stateObject; if (type in actions) { - /** @TODO FIXME ASAP!!! (CJP) */ - // @ts-ignore set(actions[type as keyof typeof actions](), stateOwners); } } @@ -118,7 +118,7 @@ export function createMediaStore({ // NOTE: In the POC architecture using nano-stores, subscribe is simply subscribeKeys across all keys. (CJP) subscribe(callback: (state: any) => void) { subscribeKeys(store, keys, callback); - } + }, }; } @@ -131,4 +131,4 @@ function getInitialState( initialState[stateName] = get(stateOwners); } return initialState; -} \ No newline at end of file +} diff --git a/packages/core/media/src/playable.ts b/packages/core/media/src/playable.ts index c485cff4..cf74dc8d 100644 --- a/packages/core/media/src/playable.ts +++ b/packages/core/media/src/playable.ts @@ -20,7 +20,6 @@ export interface IAudibleMediaStateOwner IBaseMediaStateOwner, Pick {} -// @ts-ignore - Interface compatibility issues with undefined mediaElement export class PlayableMediaStateOwner extends EventTarget implements IPlayableMediaStateOwner, IAudibleMediaStateOwner @@ -98,8 +97,11 @@ export class PlayableMediaStateOwner handleEvent(event: Event): void { if (event.target === this.mediaElement) { - // @ts-ignore - const clonedEvent = new event.constructor(event.type, event); + const clonedEvent = + new (event.constructor as (typeof globalThis)['Event'])( + event.type, + event, + ); this.dispatchEvent(clonedEvent); } } @@ -110,4 +112,4 @@ export class PlayableMediaStateOwner } } -export const createMediaStateOwner = () => new PlayableMediaStateOwner(); \ No newline at end of file +export const createMediaStateOwner = () => new PlayableMediaStateOwner(); diff --git a/packages/html/html-media-elements/src/media-provider.ts b/packages/html/html-media-elements/src/media-provider.ts index 52657975..7f802774 100644 --- a/packages/html/html-media-elements/src/media-provider.ts +++ b/packages/html/html-media-elements/src/media-provider.ts @@ -1,7 +1,6 @@ import { ProviderMixin } from '@open-wc/context-protocol'; import { createMediaStore } from '@vjs-10/media-store'; -// @ts-ignore - Custom element constructor compatibility export class MediaProvider extends ProviderMixin(HTMLElement) { contexts = { mediaStore: () => { @@ -10,5 +9,4 @@ export class MediaProvider extends ProviderMixin(HTMLElement) { }; } -// @ts-ignore - Custom elements type compatibility -customElements.define('media-provider', MediaProvider); \ No newline at end of file +customElements.define('media-provider', MediaProvider);