mirror of
https://github.com/anidl/multi-downloader-nx.git
synced 2026-03-11 17:45:30 +00:00
31 lines
775 B
TypeScript
31 lines
775 B
TypeScript
import EventEmitter from "events";
|
|
import { ProgressData } from "../@types/messageHandler";
|
|
import { Level } from "log4js";
|
|
|
|
type BaseEvent = {
|
|
identifier: string
|
|
}
|
|
|
|
type ProgressEvent = ProgressData & BaseEvent
|
|
|
|
type MessageEvent = {
|
|
msg: string,
|
|
severity: Level
|
|
} & BaseEvent
|
|
|
|
type HLSEventTypes = {
|
|
progress: (data: ProgressEvent) => unknown,
|
|
message: (data: MessageEvent) => unknown,
|
|
end: (data: BaseEvent) => unknown
|
|
}
|
|
|
|
declare interface HLSEventEmitter {
|
|
on<T extends keyof HLSEventTypes>(event: T, listener: HLSEventTypes[T]): this;
|
|
emit<T extends keyof HLSEventTypes>(event: T, data: Parameters<HLSEventTypes[T]>[0]): boolean;
|
|
}
|
|
|
|
class HLSEventEmitter extends EventEmitter {}
|
|
|
|
const eventHandler = new HLSEventEmitter();
|
|
|
|
export default eventHandler;
|