格式化

This commit is contained in:
david_bai
2025-06-10 23:25:38 +08:00
parent cabb943103
commit 3c4e15df93
+54 -43
View File
@@ -1,71 +1,82 @@
export interface Progress {//file Progress
progress: number;
speed: number;
export interface Progress {
//file Progress
progress: number;
speed: number;
}
export interface CustomFile extends File {// CustomFile 扩展了 File 接口,任然是File对象
fullName: string;//文件路径,格式:root+...+filename,比如test/test.txt,test/sub/test2.txtroot是拖拽的文件夹名
folderName: string;//文件所属文件夹,如果没有则为空,eg:root or test or ''
export interface CustomFile extends File {
// CustomFile 扩展了 File 接口,任然是File对象
fullName: string; //文件路径,格式:root+...+filename,比如test/test.txt,test/sub/test2.txtroot是拖拽的文件夹名
folderName: string; //该文件所属文件夹,如果没有则为空,eg:root or test or ''
}
export interface FileMeta {//单文件和文件夹共用这个接口
name: string;//fileName or folderName
size: number;//对于文件夹是total size
fullName: string;//文件路径,格式:root+...+filename
folderName: string;
fileType: string;//与通信中的type区分开
fileId: string;//文件夹暂时 等于 folderName
fileCount?: number;//文件夹才有
fileNamesDis?: string;//文件夹下所有文件名的展示
export interface FileMeta {
//单文件和文件夹共用这个接口
name: string; //fileName or folderName
size: number; //对于文件夹是total size
fullName: string; //文件路径,格式:root+...+filename
folderName: string;
fileType: string; //与通信中的type区分开
fileId: string; //文件夹暂时 等于 folderName
fileCount?: number; //文件夹才有
fileNamesDis?: string; //文件夹下所有文件名的展示
}
export interface fileMetadata extends FileMeta {
type: string;
type: string;
}
export interface FileRequest {
type: 'fileRequest';
fileId: string;
type: "fileRequest";
fileId: string;
}
export interface FileAck {
type: 'fileAck';
fileId: string;
type: "fileAck";
fileId: string;
}
export interface StringMetadata {
type: 'stringMetadata';
length: number;
type: "stringMetadata";
length: number;
}
export interface StringChunk {
type: 'string';
chunk: string;
index: number;
total: number;
type: "string";
chunk: string;
index: number;
total: number;
}
export interface FileEnd {
type: 'fileEnd';
fileId: string;
type: "fileEnd";
fileId: string;
}
export type WebRTCMessage = fileMetadata | FileRequest | FileAck | StringMetadata | StringChunk | FileEnd;
export type WebRTCMessage =
| fileMetadata
| FileRequest
| FileAck
| StringMetadata
| StringChunk
| FileEnd;
export interface FolderMeta {
totalSize: number;
fileIds: string[];
totalSize: number;
fileIds: string[];
}
export interface FolderProgress extends FolderMeta {
receivedSize: number;
}
export interface PeerState {
isSending: boolean;
bufferQueue: ArrayBuffer[];
readOffset: number;
isReading: boolean;
totalBytesSent: Record<string, number>;
progressCallback: ((id: string, progress: number, speed: number) => void) | null;
currentFolderName?: string;
isSending: boolean;
bufferQueue: ArrayBuffer[];
readOffset: number;
isReading: boolean;
totalBytesSent: Record<string, number>;
progressCallback:
| ((id: string, progress: number, speed: number) => void)
| null;
currentFolderName?: string;
}
export interface CurrentString {
@@ -77,6 +88,6 @@ export interface CurrentString {
export interface FileHandlers {
string: (data: any, peerId: string) => void;
stringMetadata: (data: any, peerId: string) => void;
fileMeta: (data: any, peerId: string) => Promise<void>;
fileMeta: (data: any, peerId: string) => void;
fileEnd: (data: any) => Promise<void>;
}
}