events.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. export class Event {
  2. public target: any;
  3. public type: string;
  4. constructor(type: string, target: any) {
  5. this.target = target;
  6. this.type = type;
  7. }
  8. }
  9. export class ErrorEvent extends Event {
  10. public message: string;
  11. public error: Error;
  12. constructor(error: Error, target: any) {
  13. super('error', target);
  14. this.message = error.message;
  15. this.error = error;
  16. }
  17. }
  18. export class CloseEvent extends Event {
  19. public code: number;
  20. public reason: string;
  21. public wasClean = true;
  22. constructor(code: number = 1000, reason: string = '', target: any) {
  23. super('close', target);
  24. this.code = code;
  25. this.reason = reason;
  26. }
  27. }
  28. export interface WebSocketEventMap {
  29. close: CloseEvent;
  30. error: ErrorEvent;
  31. message: MessageEvent;
  32. open: Event;
  33. }
  34. export interface WebSocketEventListenerMap {
  35. close: (event: CloseEvent) => void | {handleEvent: (event: CloseEvent) => void};
  36. error: (event: ErrorEvent) => void | {handleEvent: (event: ErrorEvent) => void};
  37. message: (event: MessageEvent) => void | {handleEvent: (event: MessageEvent) => void};
  38. open: (event: Event) => void | {handleEvent: (event: Event) => void};
  39. }