events.ts 924 B

12345678910111213141516171819202122232425262728293031323334353637
  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 type EventListener = (event: Event | CloseEvent | MessageEvent) => void;