refactor: add typescript support to project
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
|
||||
export interface AuthToken {
|
||||
// common
|
||||
server_id: string;
|
||||
token: string;
|
||||
refresh_token: string;
|
||||
expired_in: number;
|
||||
}
|
||||
|
||||
// todo: check gender values
|
||||
export type Gender = 0 | 1;
|
||||
|
||||
export interface User {
|
||||
// avatar: string; // todo: check transform data in redux slice
|
||||
uid: number;
|
||||
email: string;
|
||||
name: string;
|
||||
gender: Gender;
|
||||
language: string;
|
||||
is_admin: boolean;
|
||||
avatar_updated_at: number;
|
||||
create_by: string;
|
||||
}
|
||||
|
||||
export interface AuthData extends AuthToken {
|
||||
initialized?: boolean;
|
||||
user: User;
|
||||
}
|
||||
@@ -3,6 +3,11 @@ export interface ChannelMember {
|
||||
|
||||
}
|
||||
|
||||
// todo: check message fields
|
||||
export interface ChannelMessage {
|
||||
mid: number;
|
||||
}
|
||||
|
||||
export type ContentType =
|
||||
'text/plain' |
|
||||
'text/markdown' |
|
||||
@@ -22,7 +27,7 @@ export interface PinnedMessage {
|
||||
|
||||
export interface Channel {
|
||||
gid: number;
|
||||
icon: string; // added by frontend
|
||||
// icon: string; // todo: check
|
||||
owner: number;
|
||||
name: string;
|
||||
description: string;
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
export interface EntityId {
|
||||
id: number;
|
||||
}
|
||||
Vendored
+3
-2
@@ -1,7 +1,8 @@
|
||||
import { PrecacheEntry } from "workbox-precaching/src/_types";
|
||||
|
||||
export declare global {
|
||||
interface Window {
|
||||
__WB_MANIFEST: any; // todo
|
||||
skipWaiting: any; // todo
|
||||
__WB_MANIFEST: Array<PrecacheEntry | string>;
|
||||
skipWaiting: () => void;
|
||||
}
|
||||
}
|
||||
|
||||
+91
-23
@@ -1,70 +1,138 @@
|
||||
// todo
|
||||
interface ReadyEvent {
|
||||
type: 'ready'
|
||||
import { User } from './auth';
|
||||
import { Channel, ContentType } from './channel';
|
||||
|
||||
export interface ReadyEvent {
|
||||
type: 'ready';
|
||||
}
|
||||
|
||||
interface UsersSnapshotEvent {
|
||||
type: 'users_snapshot'
|
||||
export interface UsersSnapshotEvent {
|
||||
type: 'users_snapshot';
|
||||
users: User[];
|
||||
version: number;
|
||||
}
|
||||
|
||||
interface UsersLogEvent {
|
||||
type: 'users_log'
|
||||
// todo: check if create_by field exists
|
||||
export interface UserLog extends Omit<User, 'create_by'> {
|
||||
log_id: number;
|
||||
action: 'create' | 'update' | 'delete';
|
||||
}
|
||||
|
||||
interface UsersStateEvent {
|
||||
type: 'users_state'
|
||||
export interface UsersLogEvent {
|
||||
type: 'users_log';
|
||||
logs: UserLog[];
|
||||
}
|
||||
|
||||
interface UsersStateChangedEvent {
|
||||
type: 'users_state_changed'
|
||||
export interface UserState {
|
||||
uid: number;
|
||||
online: boolean;
|
||||
}
|
||||
|
||||
export interface UsersStateEvent {
|
||||
type: 'users_state';
|
||||
users: UserState[];
|
||||
}
|
||||
|
||||
interface UsersStateChangedEvent extends UserState{
|
||||
type: 'users_state_changed';
|
||||
}
|
||||
|
||||
interface UserSettingsEvent {
|
||||
type: 'user_settings'
|
||||
type: 'user_settings';
|
||||
mute_users?: { uid: number; expired_at: number; }[];
|
||||
mute_groups?: { gid: number; expired_at: number; }[];
|
||||
read_index_users?: { uid: number; mid: number; }[];
|
||||
read_index_groups?: { gid: number; mid: number; }[];
|
||||
burn_after_reading_users?: { uid: number; expires_in: number; }[];
|
||||
burn_after_reading_groups?: { gid: number; expires_in: number; }[];
|
||||
}
|
||||
|
||||
interface UserSettingsChangedEvent {
|
||||
type: 'user_settings_changed'
|
||||
type: 'user_settings_changed';
|
||||
from_device?: string;
|
||||
add_mute_users?: { uid: number; expired_at: number; }[];
|
||||
remove_mute_users?: number[];
|
||||
add_mute_groups?: { gid: number; expired_at: number; }[];
|
||||
remove_mute_groups?: number[];
|
||||
read_index_users?: { uid: number; mid: number; }[];
|
||||
read_index_groups?: { gid: number; mid: number; }[];
|
||||
burn_after_reading_users?: { uid: number; expires_in: number; }[];
|
||||
burn_after_reading_groups?: { gid: number; expires_in: number; }[];
|
||||
}
|
||||
|
||||
interface RelatedGroupsEvent {
|
||||
type: 'related_groups'
|
||||
type: 'related_groups';
|
||||
groups: Channel[];
|
||||
}
|
||||
|
||||
interface ChatEvent {
|
||||
type: 'chat'
|
||||
type: 'chat';
|
||||
mid: number;
|
||||
from_uid: number;
|
||||
created_at: number;
|
||||
target: { uid: number };
|
||||
detail: {
|
||||
properties: {};
|
||||
content: string;
|
||||
content_type: ContentType;
|
||||
expires_in: number;
|
||||
type: 'normal';
|
||||
};
|
||||
}
|
||||
|
||||
interface KickEvent {
|
||||
type: 'kick'
|
||||
type: 'kick';
|
||||
reason: string;
|
||||
}
|
||||
|
||||
interface UserJoinedGroupEvent {
|
||||
type: 'user_joined_group'
|
||||
type: 'user_joined_group';
|
||||
gid: number;
|
||||
uid: number[];
|
||||
}
|
||||
|
||||
interface UserLeavedGroupEvent {
|
||||
type: 'user_leaved_group'
|
||||
type: 'user_leaved_group';
|
||||
gid: number;
|
||||
uid: number[];
|
||||
}
|
||||
|
||||
interface JoinedGroupEvent {
|
||||
type: 'joined_group'
|
||||
type: 'joined_group';
|
||||
group: Channel;
|
||||
}
|
||||
|
||||
interface KickFromGroupEvent {
|
||||
type: 'kick_from_group'
|
||||
type: 'kick_from_group';
|
||||
gid: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
interface GroupChangedEvent {
|
||||
type: 'group_changed'
|
||||
type: 'group_changed';
|
||||
gid: number;
|
||||
name: string;
|
||||
description: string;
|
||||
owner: number;
|
||||
avatar_updated_at: number;
|
||||
}
|
||||
|
||||
interface PinnedMessageUpdatedEvent {
|
||||
type: 'pinned_message_updated'
|
||||
type: 'pinned_message_updated';
|
||||
gid: number;
|
||||
mid: number;
|
||||
msg: {
|
||||
mid: number;
|
||||
created_by: number;
|
||||
created_at: number;
|
||||
properties: {};
|
||||
content: string;
|
||||
content_type: ContentType;
|
||||
}
|
||||
}
|
||||
|
||||
interface HeartbeatEvent {
|
||||
type: 'heartbeat'
|
||||
type: 'heartbeat';
|
||||
time: number;
|
||||
}
|
||||
|
||||
export type ServerEvent = ReadyEvent |
|
||||
|
||||
Reference in New Issue
Block a user