Fix types for metadata

This commit is contained in:
Jordan Eldredge 2025-07-04 10:09:31 -07:00
parent e043a1b5b8
commit b66667019c
3 changed files with 7 additions and 4 deletions

View file

@ -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<IAudioMetadata> {
invariant(
file != null,

View file

@ -893,9 +893,11 @@ export interface IMusicMetadataApi {
parseBlob(blob: Blob, options?: IOptions): Promise<IAudioMetadata>;
}
export type IMetadataApi = IMusicMetadataBrowserApi | IMusicMetadataApi;
export interface Extras {
requireJSZip(): Promise<any>;
requireMusicMetadata(): Promise<IMusicMetadataBrowserApi>;
requireMusicMetadata(): Promise<IMetadataApi>;
convertPreset: ((file: File) => Promise<Object>) | null;
handleTrackDropEvent?: (
e: React.DragEvent<HTMLDivElement>

View file

@ -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<typeof import("jszip")>;
requireMusicMetadata: () => Promise<typeof import("music-metadata")>;
requireMusicMetadata: () => Promise<IMetadataApi>;
}
class Webamp {