39 lines
1020 B
TypeScript
39 lines
1020 B
TypeScript
import { User } from './user.model';
|
|
|
|
export enum MessageType {
|
|
CHAT = 'CHAT',
|
|
PING = 'PING',
|
|
NAME_CHANGE = 'NAME_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;
|
|
}
|