bdcf4fe299
- 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/
96 lines
1.6 KiB
TypeScript
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 }[]
|
|
}
|