From 7e21808d695ffad7e7196cf5c3ad54387d1f336a Mon Sep 17 00:00:00 2001 From: db123 Date: Tue, 28 Apr 2026 01:16:02 +0330 Subject: [PATCH] chore(types): scattered the type interfaces scattered type interfaces wih goal of scalability and easier debug and coding --- src/types/AdapterAPI.ts | 17 +++++++++ src/types/PlaybackState.ts | 14 ++++++++ src/types/PlayerOptions.ts | 46 ++++++++++++++++++++++++ src/types/index.ts | 72 +++++--------------------------------- 4 files changed, 86 insertions(+), 63 deletions(-) create mode 100644 src/types/AdapterAPI.ts create mode 100644 src/types/PlaybackState.ts create mode 100644 src/types/PlayerOptions.ts diff --git a/src/types/AdapterAPI.ts b/src/types/AdapterAPI.ts new file mode 100644 index 0000000..ca51d73 --- /dev/null +++ b/src/types/AdapterAPI.ts @@ -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; +} diff --git a/src/types/PlaybackState.ts b/src/types/PlaybackState.ts new file mode 100644 index 0000000..a2cfa98 --- /dev/null +++ b/src/types/PlaybackState.ts @@ -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; +} diff --git a/src/types/PlayerOptions.ts b/src/types/PlayerOptions.ts new file mode 100644 index 0000000..90ef2ac --- /dev/null +++ b/src/types/PlayerOptions.ts @@ -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; + 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; +} diff --git a/src/types/index.ts b/src/types/index.ts index 33bfeec..6a3933c 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,65 +1,11 @@ -/** - * type interfaces - * - * author: db123 at db - * creation: 22/4/2026 - */ +export { AdapterAPI } from './AdapterAPI'; -export interface AdapterAPI { - load: () => void; - play: () => void; - pause: () => void; - destroy: () => void; - time: number; - volume: number; - muted: boolean; - readonly duration: () => number; -} +export { + PlayerConfig, + ControlConfig, + AdapterConfig, + HLSOptions, + DASHOptions, +} from './PlayerOptions'; -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; - 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; -} +export { PlayerEvents } from './PlaybackState';