From b66667019c85405c8df49779bc81be3381094879 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Fri, 4 Jul 2025 10:09:31 -0700 Subject: [PATCH] Fix types for metadata --- packages/webamp/js/fileUtils.ts | 4 ++-- packages/webamp/js/types.ts | 4 +++- packages/webamp/js/webampLazy.tsx | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/webamp/js/fileUtils.ts b/packages/webamp/js/fileUtils.ts index f1da00e6..f18ac81e 100644 --- a/packages/webamp/js/fileUtils.ts +++ b/packages/webamp/js/fileUtils.ts @@ -1,5 +1,5 @@ import invariant from "invariant"; -import { IMusicMetadataApi, IMusicMetadataBrowserApi } from "./types"; +import { IMetadataApi } from "./types"; import { IAudioMetadata } from "music-metadata-browser"; // Import music-metadata type definitions import * as Utils from "./utils"; @@ -7,7 +7,7 @@ type MediaDataType = string | ArrayBuffer | Blob; export async function genMediaTags( file: MediaDataType, - musicMetadata: IMusicMetadataBrowserApi | IMusicMetadataApi + musicMetadata: IMetadataApi ): Promise { invariant( file != null, diff --git a/packages/webamp/js/types.ts b/packages/webamp/js/types.ts index 1da6b46c..802becc6 100644 --- a/packages/webamp/js/types.ts +++ b/packages/webamp/js/types.ts @@ -893,9 +893,11 @@ export interface IMusicMetadataApi { parseBlob(blob: Blob, options?: IOptions): Promise; } +export type IMetadataApi = IMusicMetadataBrowserApi | IMusicMetadataApi; + export interface Extras { requireJSZip(): Promise; - requireMusicMetadata(): Promise; + requireMusicMetadata(): Promise; convertPreset: ((file: File) => Promise) | null; handleTrackDropEvent?: ( e: React.DragEvent diff --git a/packages/webamp/js/webampLazy.tsx b/packages/webamp/js/webampLazy.tsx index 1f77cb22..92acbb41 100644 --- a/packages/webamp/js/webampLazy.tsx +++ b/packages/webamp/js/webampLazy.tsx @@ -14,6 +14,7 @@ import { MediaStatus, PlaylistTrack, PlayerMediaStatus, + IMetadataApi, } from "./types"; import getStore from "./store"; import App from "./components/App"; @@ -52,7 +53,7 @@ export interface PrivateOptions { export interface InjectableDependencies { requireJSZip: () => Promise; - requireMusicMetadata: () => Promise; + requireMusicMetadata: () => Promise; } class Webamp {