mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-22 09:37:17 +00:00
Simplify TypeScript definition (avoid redefine music-metadata-browser).
This commit is contained in:
parent
7ebaa65cfd
commit
e4de4aba2b
2 changed files with 6 additions and 35 deletions
|
|
@ -1,12 +1,12 @@
|
|||
import invariant from "invariant";
|
||||
import { IMusicMetadataBrowserApi } from "./types";
|
||||
import { MusicMetadataBrowser } from "./types";
|
||||
import { IAudioMetadata } from "music-metadata-browser"; // Import music-metadata type definitions
|
||||
|
||||
type MediaDataType = string | ArrayBuffer | Blob;
|
||||
|
||||
export function genMediaTags(
|
||||
file: MediaDataType,
|
||||
musicMetadata: IMusicMetadataBrowserApi
|
||||
musicMetadata: MusicMetadataBrowser
|
||||
): Promise<IAudioMetadata> {
|
||||
invariant(
|
||||
file != null,
|
||||
|
|
|
|||
37
js/types.ts
37
js/types.ts
|
|
@ -8,7 +8,7 @@ import { EqualizerState } from "./reducers/equalizer";
|
|||
import { NetworkState } from "./reducers/network";
|
||||
import { SerializedStateV1 } from "./serializedStates/v1Types";
|
||||
import { TracksState } from "./reducers/tracks";
|
||||
import { IAudioMetadata, IOptions } from 'music-metadata-browser';
|
||||
import musicMetadataBrowser from 'music-metadata-browser';
|
||||
|
||||
export {
|
||||
WebampWindow,
|
||||
|
|
@ -518,41 +518,12 @@ export interface AppState {
|
|||
tracks: TracksState;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type definition of the music-metadata-browser module.
|
||||
* Ref: https://github.com/Borewit/music-metadata-browser/blob/master/src/index.ts
|
||||
*/
|
||||
export interface IMusicMetadataBrowserApi {
|
||||
|
||||
/**
|
||||
* Parse Web API File
|
||||
* @param {Blob} blob
|
||||
* @param {IOptions} options Parsing options
|
||||
* @returns {Promise<IAudioMetadata>}
|
||||
*/
|
||||
parseBlob(blob: Blob, options?: IOptions): Promise<IAudioMetadata>;
|
||||
|
||||
/**
|
||||
* Parse fetched file, using the Web Fetch API
|
||||
* @param {string} audioTrackUrl URL to download the audio track from
|
||||
* @param {IOptions} options Parsing options
|
||||
* @returns {Promise<IAudioMetadata>}
|
||||
*/
|
||||
fetchFromUrl(audioTrackUrl: string, options?: IOptions): Promise<IAudioMetadata>;
|
||||
|
||||
/**
|
||||
* Parse audio from Node Buffer
|
||||
* @param {Stream.Readable} stream Audio input stream
|
||||
* @param {string} mimeType <string> Content specification MIME-type, e.g.: 'audio/mpeg'
|
||||
* @param {IOptions} options Parsing options
|
||||
* @returns {Promise<IAudioMetadata>}
|
||||
*/
|
||||
parseBuffer(buf: Buffer, mimeType?: string, options?: IOptions): Promise<IAudioMetadata>;
|
||||
}
|
||||
// Convert the musicMetadataBrowser namespace to a type which can be used as an interface
|
||||
export type MusicMetadataBrowser = typeof musicMetadataBrowser;
|
||||
|
||||
export interface Extras {
|
||||
requireJSZip: () => Promise<never>;
|
||||
requireMusicMetadata: () => Promise<IMusicMetadataBrowserApi>;
|
||||
requireMusicMetadata: () => Promise<MusicMetadataBrowser>;
|
||||
}
|
||||
|
||||
export type GetState = () => AppState;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue