Files
JRedisDesktop/electron/shared/types.ts
T
Jokul bdcf4fe299 refactor: restructure project layout
- Move main process to electron/main/
- Move preload to electron/preload/
- Add shared types in electron/shared/
- Split redis-service into modular redis/ directory
- Flatten renderer to src/ (remove src/renderer/ nesting)
- Update electron.vite.config.ts paths
- Update tsconfig paths
- Output to electron-dist/
2026-07-04 21:12:50 +08:00

96 lines
1.6 KiB
TypeScript

// src/shared/types.ts
// 共享类型定义
// 连接配置
export interface ConnectionConfig {
id: string
name: string
host: string
port: number
auth: string
username: string
tls: boolean
tlsCaPath: string
tlsCertPath: string
tlsKeyPath: string
sshEnabled: boolean
sshHost: string
sshPort: number
sshUsername: string
sshPassword: string
sshPrivateKeyPath: string
cluster: boolean
sentinelMasterName: string
separator: string
order: number
createdAt: number
color?: string
}
// 连接选项(用于 Redis 连接)
export interface ConnectionOptions {
host: string
port: number
password?: string
username?: string
tls?: boolean
}
// IPC 响应
export interface IpcResponse<T = void> {
success: boolean
data?: T
error?: string
}
// Key 类型
export type RedisKeyType = 'string' | 'hash' | 'list' | 'set' | 'zset' | 'stream' | 'none'
// Key 项
export interface KeyItem {
name: string
type: RedisKeyType | string
ttl: number
level: number
children?: KeyItem[]
isLeaf: boolean
}
// Scan 结果
export interface ScanResult {
cursor: string
keys: string[]
}
// Hash 字段
export interface HashField {
field: string
value: string
}
// Stream Entry
export interface StreamEntry {
id: string
fields: Record<string, string>
}
// Zset Item
export interface ZsetItem {
member: string
score: number
}
// 慢日志条目
export interface SlowLogEntry {
id: number
timestamp: number
duration: number
command: string
}
// INFO 段
export interface InfoSection {
title: string
items: { key: string; value: string }[]
}