owncast/web/interfaces/socket-events.ts

45 lines
1.1 KiB
TypeScript

import { User } from './user.model';
export enum MessageType {
CHAT = 'CHAT',
PING = 'PING',
NAME_CHANGE = 'NAME_CHANGE',
COLOR_CHANGE = 'COLOR_CHANGE',
PONG = 'PONG',
SYSTEM = 'SYSTEM',
USER_JOINED = 'USER_JOINED',
CHAT_ACTION = 'CHAT_ACTION',
FEDIVERSE_ENGAGEMENT_FOLLOW = 'FEDIVERSE_ENGAGEMENT_FOLLOW',
FEDIVERSE_ENGAGEMENT_LIKE = 'FEDIVERSE_ENGAGEMENT_LIKE',
FEDIVERSE_ENGAGEMENT_REPOST = 'FEDIVERSE_ENGAGEMENT_REPOST',
CONNECTED_USER_INFO = 'CONNECTED_USER_INFO',
ERROR_USER_DISABLED = 'ERROR_USER_DISABLED',
ERROR_NEEDS_REGISTRATION = 'ERROR_NEEDS_REGISTRATION',
ERROR_MAX_CONNECTIONS_EXCEEDED = 'ERROR_MAX_CONNECTIONS_EXCEEDED',
VISIBILITY_UPDATE = 'VISIBILITY-UPDATE',
}
export interface SocketEvent {
id: string;
timestamp: Date;
type: MessageType;
}
export interface ConnectedClientInfoEvent extends SocketEvent {
user: User;
}
export interface ChatEvent extends SocketEvent {
user: User;
body: string;
}
export interface NameChangeEvent extends SocketEvent {
user: User;
oldName: string;
}
export interface MessageVisibilityEvent extends SocketEvent {
visible: boolean;
ids: string[];
}