Add typings for Queue and Tracks

pull/4260/head
Bogdan 7 months ago
parent e7e6e8f908
commit cbb1ed2b16

@ -1,7 +1,10 @@
import AlbumAppState from './AlbumAppState';
import ArtistAppState, { ArtistIndexAppState } from './ArtistAppState';
import QueueAppState from './QueueAppState';
import SettingsAppState from './SettingsAppState';
import TagsAppState from './TagsAppState';
import TrackFilesAppState from './TrackFilesAppState';
import TracksAppState from './TracksAppState';
interface FilterBuilderPropOption {
id: string;
@ -39,8 +42,11 @@ interface AppState {
albums: AlbumAppState;
artist: ArtistAppState;
artistIndex: ArtistIndexAppState;
queue: QueueAppState;
settings: SettingsAppState;
tags: TagsAppState;
trackFiles: TrackFilesAppState;
tracksSelection: TracksAppState;
}
export default AppState;

@ -0,0 +1,10 @@
import AppSectionState, {
AppSectionDeleteState,
} from 'App/State/AppSectionState';
import { CustomFilter } from './AppState';
interface CustomFiltersAppState
extends AppSectionState<CustomFilter>,
AppSectionDeleteState {}
export default CustomFiltersAppState;

@ -0,0 +1,49 @@
import ModelBase from 'App/ModelBase';
import { QualityModel } from 'Quality/Quality';
import CustomFormat from 'typings/CustomFormat';
import AppSectionState, { AppSectionItemState, Error } from './AppSectionState';
export interface StatusMessage {
title: string;
messages: string[];
}
export interface Queue extends ModelBase {
quality: QualityModel;
customFormats: CustomFormat[];
size: number;
title: string;
sizeleft: number;
timeleft: string;
estimatedCompletionTime: string;
status: string;
trackedDownloadStatus: string;
trackedDownloadState: string;
statusMessages: StatusMessage[];
errorMessage: string;
downloadId: string;
protocol: string;
downloadClient: string;
outputPath: string;
artistId?: number;
albumId?: number;
}
export interface QueueDetailsAppState extends AppSectionState<Queue> {
params: unknown;
}
export interface QueuePagedAppState extends AppSectionState<Queue> {
isGrabbing: boolean;
grabError: Error;
isRemoving: boolean;
removeError: Error;
}
interface QueueAppState {
status: AppSectionItemState<Queue>;
details: QueueDetailsAppState;
paged: QueuePagedAppState;
}
export default QueueAppState;

@ -0,0 +1,10 @@
import AppSectionState, {
AppSectionDeleteState,
} from 'App/State/AppSectionState';
import { TrackFile } from 'TrackFile/TrackFile';
interface TrackFilesAppState
extends AppSectionState<TrackFile>,
AppSectionDeleteState {}
export default TrackFilesAppState;

@ -0,0 +1,6 @@
import AppSectionState from 'App/State/AppSectionState';
import Track from 'Track/Track';
type TracksAppState = AppSectionState<Track>;
export default TracksAppState;

@ -0,0 +1,19 @@
import ModelBase from 'App/ModelBase';
interface Track extends ModelBase {
artistId: number;
foreignTrackId: string;
foreignRecordingId: string;
trackFileId: number;
albumId: number;
explicit: boolean;
absoluteTrackNumber: number;
trackNumber: string;
title: string;
duration: number;
trackFile?: object;
mediumNumber: number;
hasFile: boolean;
}
export default Track;

@ -0,0 +1,18 @@
import ModelBase from 'App/ModelBase';
import { QualityModel } from 'Quality/Quality';
import CustomFormat from 'typings/CustomFormat';
import MediaInfo from 'typings/MediaInfo';
export interface TrackFile extends ModelBase {
artistId: number;
albumId: number;
path: string;
size: number;
dateAdded: string;
sceneName: string;
releaseGroup: string;
quality: QualityModel;
customFormats: CustomFormat[];
mediaInfo: MediaInfo;
qualityCutoffNotMet: boolean;
}

@ -0,0 +1,9 @@
interface MediaInfo {
audioBitRate: string;
audioChannels: number;
audioCodec: string;
audioBits: string;
audioSampleRate: string;
}
export default MediaInfo;
Loading…
Cancel
Save