chore(types): scattered the type interfaces

scattered type interfaces wih goal of scalability and easier debug and coding
This commit is contained in:
2026-04-28 01:16:02 +03:30
parent 918972e101
commit 7e21808d69
4 changed files with 86 additions and 63 deletions

17
src/types/AdapterAPI.ts Normal file
View File

@@ -0,0 +1,17 @@
/**
* adapter api type interface
*
* author: db123 at db
* creation: 28/4/2026
*/
export interface AdapterAPI {
load: () => void;
play: () => void;
pause: () => void;
destroy: () => void;
time: number;
volume: number;
muted: boolean;
readonly duration: () => number;
}

View File

@@ -0,0 +1,14 @@
/**
* player state type interface
*
* author: db123 at db
* creation: 28/4/2026
*/
export interface PlayerEvents {
onPlay?: () => void;
onPause?: () => void;
onEnd?: () => void;
onError?: () => void;
onBuffer?: () => void;
}

View File

@@ -0,0 +1,46 @@
/**
* player config and options type interface
*
* author: db123 at db
* creation: 28/4/2026
*/
export interface PlayerConfig {
type: 'native' | 'hls' | 'dash';
theme?: 'dark' | 'light';
accent?: string;
controls?: boolean | ControlConfig;
preload?: 'auto' | 'metadata' | 'none';
autoplay?: boolean;
loop?: boolean;
muted?: boolean;
adapters?: AdapterConfig;
prefixClass: string;
}
export interface ControlConfig {
playToggle: boolean;
seekPos: number;
seekNeg: number;
qualitySelector: boolean;
playbackSpeed: Array<number>;
fullscreen: boolean;
volume: boolean;
progressBar: boolean;
currentTime: boolean;
timeLeft: boolean;
}
export interface AdapterConfig {
native?: boolean;
hls?: boolean | HLSOptions;
dash?: boolean | DASHOptions;
}
export interface HLSOptions {
enableWorker?: boolean;
}
export interface DASHOptions {
enableWorker?: boolean;
}

View File

@@ -1,65 +1,11 @@
/** export { AdapterAPI } from './AdapterAPI';
* type interfaces
*
* author: db123 at db
* creation: 22/4/2026
*/
export interface AdapterAPI { export {
load: () => void; PlayerConfig,
play: () => void; ControlConfig,
pause: () => void; AdapterConfig,
destroy: () => void; HLSOptions,
time: number; DASHOptions,
volume: number; } from './PlayerOptions';
muted: boolean;
readonly duration: () => number;
}
export interface PlayerConfig { export { PlayerEvents } from './PlaybackState';
type: "native" | "hls" | "dash";
theme?: "dark" | "light";
accent?: string;
controls?: boolean | ControlConfig;
preload?: "auto" | "metadata" | "none";
autoplay?: boolean;
loop?: boolean;
muted?: boolean;
adapters?: AdapterConfig;
prefixClass: string;
}
export interface ControlConfig {
playToggle: boolean;
seekPos: number;
seekNeg: number;
qualitySelector: boolean;
playbackSpeed: Array<number>;
fullscreen: boolean;
volume: boolean;
progressBar: boolean;
currentTime: boolean;
timeLeft: boolean;
}
export interface AdapterConfig {
native?: boolean;
hls?: boolean | HLSOptions;
dash?: boolean | DASHOptions;
}
export interface HLSOptions {
enableWorker?: boolean;
}
export interface DASHOptions {
enableWorker?: boolean;
}
export interface PlayerEvents {
onPlay?: () => void;
onPause?: () => void;
onEnd?: () => void;
onError?: () => void;
onBuffer?: () => void;
}