chore(types): scattered the type interfaces
scattered type interfaces wih goal of scalability and easier debug and coding
This commit is contained in:
17
src/types/AdapterAPI.ts
Normal file
17
src/types/AdapterAPI.ts
Normal 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;
|
||||||
|
}
|
||||||
14
src/types/PlaybackState.ts
Normal file
14
src/types/PlaybackState.ts
Normal 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;
|
||||||
|
}
|
||||||
46
src/types/PlayerOptions.ts
Normal file
46
src/types/PlayerOptions.ts
Normal 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;
|
||||||
|
}
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user