khamba
Version:
A cli tool for sharing files through local network.
83 lines (82 loc) • 2 kB
TypeScript
export type InfoType = {
MY_ID: string;
MY_IP: string | null;
MY_NAME: string | null;
BROADCAST_ADDR: string | null;
UDP_PORT: number;
HTTP_PORT: number;
};
export type FileTypes = 'image' | 'video' | 'text' | 'folder' | 'others';
export type SingleSendingFile = {
fileName: string;
fileHash: string;
fileSize: number;
fileType: FileTypes;
};
export type SendingFiles = {
[fileID: string]: SingleSendingFile;
};
export type DiscoveredPeerType = {
id: string;
ip: string;
name: string;
httpPort: number;
};
export type DiscoveredPeersType = {
[peerID: string]: DiscoveredPeerType;
};
export type ConnectedPeerType = {
id: string;
ip: string;
name: string;
isSending: boolean;
httpPort: number;
};
export type ConnectedPeersType = {
[peerID: string]: ConnectedPeerType;
};
export type TransferStates = 'DEFAULT' | 'TRANSFERRING' | 'TRANSFERRED' | 'HASH_CHECKING' | 'ERROR' | 'SUCCESS';
export type SingleTransferFileInfo = {
state: TransferStates;
errorMsg?: string;
fileName: string;
fileType: FileTypes;
totalSize: number;
totalTransferred: number;
};
export type TransferFiles = {
[fileID: string]: SingleTransferFileInfo;
};
export type TransferPeerInfo = {
peerID: string;
peerIP: string;
peerHttpPort: number;
peerName: string;
};
export type ReceiverTransferInfo = {
peerInfo: TransferPeerInfo;
totalFiles: number;
totalFileSize: number;
files: TransferFiles;
};
export type SingleFile = {
fileId: string;
fileName: string;
fileSize: number;
fileType: FileTypes;
};
export type Files = {
[fileID: string]: SingleFile;
};
export type PeersFiles = {
[peerID: string]: Files;
};
export type SenderSinglePeerTransferInfo = {
peerInfo: TransferPeerInfo;
totalFiles: number;
totalFileSize: number;
files: TransferFiles;
};
export type SenderTransferInfo = {
[peerID: string]: SenderSinglePeerTransferInfo;
};