status-sharding
Version:
Welcome to Status Sharding! This package is designed to provide an efficient and flexible solution for sharding Discord bots, allowing you to scale your bot across multiple processes or workers.
25 lines (24 loc) • 955 B
TypeScript
export interface ChildProcessEventMap {
exit: (code: number | null, signal: NodeJS.Signals | null) => void;
error: (error: Error) => void;
message: (message: unknown, sendHandle?: unknown) => void;
disconnect: () => void;
close: (code: number | null, signal: NodeJS.Signals | null) => void;
spawn: () => void;
}
export interface WorkerThreadEventMap {
exit: (exitCode: number) => void;
error: (error: Error) => void;
message: (value: unknown) => void;
messageerror: (error: Error) => void;
online: () => void;
}
/** Generic listener manager for type safety */
export declare class ListenerManager<T extends WorkerThreadEventMap | ChildProcessEventMap> {
private listeners;
set<K extends keyof T>(event: K, listener: T[K]): void;
get<K extends keyof T>(event: K): T[K] | undefined;
has<K extends keyof T>(event: K): boolean;
delete<K extends keyof T>(event: K): boolean;
clear(): void;
}