first commit
Some checks failed
Build / run (push) Has been cancelled

This commit is contained in:
maher
2025-10-29 11:42:25 +01:00
commit 703f50a09d
4595 changed files with 385164 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
import {MediaItem, YoutubeMediaItem} from '@common/player/media-item';
import {PlayerInitialData} from '@common/player/utils/player-local-storage';
import type {PlayerState} from '@common/player/state/player-state';
import {YouTubePlayerState} from '@common/player/providers/youtube/youtube-types';
import {PlayerEvents} from '@common/player/state/player-events';
// all listeners specified by user will get full player state passed
// along with original event payload, so it needs a separate type
type ListenersWithState = {
[K in keyof PlayerEvents]: PlayerEvents[K] extends void | undefined | never
? (payload: {state: PlayerState}) => void
: (payload: PlayerEvents[K] & {state: PlayerState}) => void;
};
// makes it easier to access sourceEvent for user without having to use "in" operator to narrow types
type Listeners = Omit<ListenersWithState, 'error'> & {
error: (payload: {state: PlayerState; sourceEvent?: any}) => void;
};
export interface PlayerStoreOptions {
persistQueueInLocalStorage?: boolean;
autoPlay?: boolean;
initialData?: PlayerInitialData;
listeners?: Partial<Listeners>;
defaultVolume?: number;
pauseWhileSeeking?: boolean;
onBeforePlayNext?: (media?: MediaItem) => boolean | undefined;
onBeforePlayPrevious?: (media?: MediaItem) => boolean | undefined;
onDestroy?: () => void;
setMediaSessionMetadata?: (mediaItem: MediaItem) => void;
onBeforePlay?: () => Promise<void> | undefined;
loadMoreMediaItems?: (
mediaItem?: MediaItem
) => Promise<MediaItem[] | undefined>;
youtube?: {
srcResolver?: (mediaItem: YoutubeMediaItem) => Promise<YoutubeMediaItem>;
onStateChange?: (state: YouTubePlayerState) => void;
useCookies?: boolean;
};
}