socket-events.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { User } from './user.model';
  2. export enum MessageType {
  3. CHAT = 'CHAT',
  4. PING = 'PING',
  5. NAME_CHANGE = 'NAME_CHANGE',
  6. COLOR_CHANGE = 'COLOR_CHANGE',
  7. PONG = 'PONG',
  8. SYSTEM = 'SYSTEM',
  9. USER_JOINED = 'USER_JOINED',
  10. CHAT_ACTION = 'CHAT_ACTION',
  11. FEDIVERSE_ENGAGEMENT_FOLLOW = 'FEDIVERSE_ENGAGEMENT_FOLLOW',
  12. FEDIVERSE_ENGAGEMENT_LIKE = 'FEDIVERSE_ENGAGEMENT_LIKE',
  13. FEDIVERSE_ENGAGEMENT_REPOST = 'FEDIVERSE_ENGAGEMENT_REPOST',
  14. CONNECTED_USER_INFO = 'CONNECTED_USER_INFO',
  15. ERROR_USER_DISABLED = 'ERROR_USER_DISABLED',
  16. ERROR_NEEDS_REGISTRATION = 'ERROR_NEEDS_REGISTRATION',
  17. ERROR_MAX_CONNECTIONS_EXCEEDED = 'ERROR_MAX_CONNECTIONS_EXCEEDED',
  18. VISIBILITY_UPDATE = 'VISIBILITY-UPDATE',
  19. }
  20. export interface SocketEvent {
  21. id: string;
  22. timestamp: Date;
  23. type: MessageType;
  24. }
  25. export interface ConnectedClientInfoEvent extends SocketEvent {
  26. user: User;
  27. }
  28. export interface ChatEvent extends SocketEvent {
  29. user: User;
  30. body: string;
  31. }
  32. export interface NameChangeEvent extends SocketEvent {
  33. user: User;
  34. oldName: string;
  35. }
  36. export interface MessageVisibilityEvent extends SocketEvent {
  37. visible: boolean;
  38. ids: string[];
  39. }