mirror of
https://github.com/nicotsx/zerobyte.git
synced 2025-12-10 12:10:51 +01:00
26 lines
898 B
TypeScript
26 lines
898 B
TypeScript
import { EventEmitter } from "node:events";
|
|
import type { TypedEmitter } from "tiny-typed-emitter";
|
|
|
|
/**
|
|
* Event payloads for the SSE system
|
|
*/
|
|
interface ServerEvents {
|
|
"backup:started": (data: { scheduleId: number; volumeName: string; repositoryName: string }) => void;
|
|
"backup:completed": (data: {
|
|
scheduleId: number;
|
|
volumeName: string;
|
|
repositoryName: string;
|
|
status: "success" | "error";
|
|
}) => void;
|
|
"volume:mounted": (data: { volumeName: string }) => void;
|
|
"volume:unmounted": (data: { volumeName: string }) => void;
|
|
"volume:updated": (data: { volumeName: string }) => void;
|
|
"volume:status_changed": (data: { volumeName: string; status: string }) => void;
|
|
}
|
|
|
|
/**
|
|
* Global event emitter for server-side events
|
|
* Use this to emit events that should be broadcasted to connected clients via SSE
|
|
*/
|
|
export const serverEvents = new EventEmitter() as TypedEmitter<ServerEvents>;
|