refactor: add typescript support to project
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
|
||||
export interface ChannelMember {
|
||||
|
||||
}
|
||||
|
||||
export type ContentType =
|
||||
'text/plain' |
|
||||
'text/markdown' |
|
||||
'rustchat/file' |
|
||||
'rustchat/archive';
|
||||
|
||||
export interface PinnedMessage {
|
||||
mid: number;
|
||||
content: string;
|
||||
content_type: ContentType;
|
||||
created_by: number;
|
||||
created_at: number;
|
||||
properties: {
|
||||
local_id?: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface Channel {
|
||||
gid: number;
|
||||
icon: string; // added by frontend
|
||||
owner: number;
|
||||
name: string;
|
||||
description: string;
|
||||
members: number[];
|
||||
is_public: boolean;
|
||||
avatar_updated_at: number;
|
||||
pinned_messages: PinnedMessage[];
|
||||
}
|
||||
|
||||
export interface UpdateChannelDTO {
|
||||
operation: 'add_member' | 'remove_member';
|
||||
members?: number[];
|
||||
|
||||
// type = 'group_changed'
|
||||
gid: number; // todo check
|
||||
name?: string;
|
||||
description?: string;
|
||||
owner?: number;
|
||||
avatar_updated_at?: number;
|
||||
type?: string;
|
||||
// type = 'user_joined_group' | 'user_leaved_group'
|
||||
// gid
|
||||
uid?: number[];
|
||||
}
|
||||
|
||||
export interface UpdatePinnedMessageDTO {
|
||||
gid: number;
|
||||
mid: number;
|
||||
msg: PinnedMessage;
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
// todo
|
||||
interface ReadyEvent {
|
||||
type: 'ready'
|
||||
}
|
||||
|
||||
interface UsersSnapshotEvent {
|
||||
type: 'users_snapshot'
|
||||
}
|
||||
|
||||
interface UsersLogEvent {
|
||||
type: 'users_log'
|
||||
}
|
||||
|
||||
interface UsersStateEvent {
|
||||
type: 'users_state'
|
||||
}
|
||||
|
||||
interface UsersStateChangedEvent {
|
||||
type: 'users_state_changed'
|
||||
}
|
||||
|
||||
interface UserSettingsEvent {
|
||||
type: 'user_settings'
|
||||
}
|
||||
|
||||
interface UserSettingsChangedEvent {
|
||||
type: 'user_settings_changed'
|
||||
}
|
||||
|
||||
interface RelatedGroupsEvent {
|
||||
type: 'related_groups'
|
||||
}
|
||||
|
||||
interface ChatEvent {
|
||||
type: 'chat'
|
||||
}
|
||||
|
||||
interface KickEvent {
|
||||
type: 'kick'
|
||||
}
|
||||
|
||||
interface UserJoinedGroupEvent {
|
||||
type: 'user_joined_group'
|
||||
}
|
||||
|
||||
interface UserLeavedGroupEvent {
|
||||
type: 'user_leaved_group'
|
||||
}
|
||||
|
||||
interface JoinedGroupEvent {
|
||||
type: 'joined_group'
|
||||
}
|
||||
|
||||
interface KickFromGroupEvent {
|
||||
type: 'kick_from_group'
|
||||
}
|
||||
|
||||
interface GroupChangedEvent {
|
||||
type: 'group_changed'
|
||||
}
|
||||
|
||||
interface PinnedMessageUpdatedEvent {
|
||||
type: 'pinned_message_updated'
|
||||
}
|
||||
|
||||
interface HeartbeatEvent {
|
||||
type: 'heartbeat'
|
||||
}
|
||||
|
||||
export type ServerEvent = ReadyEvent |
|
||||
UsersSnapshotEvent |
|
||||
UsersLogEvent |
|
||||
UsersStateEvent |
|
||||
UsersStateChangedEvent |
|
||||
UserSettingsEvent |
|
||||
UserSettingsChangedEvent |
|
||||
RelatedGroupsEvent |
|
||||
ChatEvent |
|
||||
KickEvent |
|
||||
UserJoinedGroupEvent |
|
||||
UserLeavedGroupEvent |
|
||||
JoinedGroupEvent |
|
||||
KickFromGroupEvent |
|
||||
GroupChangedEvent |
|
||||
PinnedMessageUpdatedEvent |
|
||||
HeartbeatEvent;
|
||||
Reference in New Issue
Block a user