mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-18 04:07:37 +08:00
- queryWithContext 中 find/count 命令改用原生 Collection.Find()和 CountDocuments() API,替代RunCommand 的 firstBatch 模式
- 新增 convertBsonValue 将 ObjectID/bson.M/bson.D/bson.A 转为JSON 友好类型,_id 列自动置首
- DBQuery 增加 MongoDB JSON 命令识别,避免 find 命令误走 Exec 分支
⚡️perf(macos): 动态控制 NSVisualEffectView 降低 MacOS GPU 持续消耗,Windows不受影响
- NSVisualEffectView 启动默认 alpha 由 0.72 改为 0,窗口默认 opaque
- 新增 gonaviSetEffectViewAlpha ObjC 函数支持运行时动态切换
- 新增 SetWindowTranslucency Wails 绑定方法供前端调用
- 启动重试次数由 24 次缩减至 8 次
- opacity=1.0 且 blur=0 时窗口标记 opaque,GPU 不再持续计算模糊合成
- App.tsx 仅保留最外层 Layout 的 backdropFilter,移除 TitleBar/MenuBar/Content/DataGrid/LogPanel 冗余嵌套
- App.css 移除暗色模式全局 text-shadow 减少 compositing 开销
146 lines
2.9 KiB
TypeScript
146 lines
2.9 KiB
TypeScript
export interface SSHConfig {
|
|
host: string;
|
|
port: number;
|
|
user: string;
|
|
password?: string;
|
|
keyPath?: string;
|
|
}
|
|
|
|
export interface ConnectionConfig {
|
|
type: string;
|
|
host: string;
|
|
port: number;
|
|
user: string;
|
|
password?: string;
|
|
savePassword?: boolean;
|
|
database?: string;
|
|
useSSH?: boolean;
|
|
ssh?: SSHConfig;
|
|
redisDB?: number; // Redis database index (0-15)
|
|
uri?: string; // Connection URI for copy/paste
|
|
hosts?: string[]; // Multi-host addresses: host:port
|
|
topology?: 'single' | 'replica';
|
|
mysqlReplicaUser?: string;
|
|
mysqlReplicaPassword?: string;
|
|
replicaSet?: string;
|
|
authSource?: string;
|
|
readPreference?: string;
|
|
mongoSrv?: boolean;
|
|
mongoAuthMechanism?: string;
|
|
mongoReplicaUser?: string;
|
|
mongoReplicaPassword?: string;
|
|
}
|
|
|
|
export interface MongoMemberInfo {
|
|
host: string;
|
|
role: string;
|
|
state: string;
|
|
stateCode?: number;
|
|
healthy: boolean;
|
|
isSelf?: boolean;
|
|
}
|
|
|
|
export interface SavedConnection {
|
|
id: string;
|
|
name: string;
|
|
config: ConnectionConfig;
|
|
includeDatabases?: string[];
|
|
includeRedisDatabases?: number[]; // Redis databases to show (0-15)
|
|
}
|
|
|
|
export interface ColumnDefinition {
|
|
name: string;
|
|
type: string;
|
|
nullable: string;
|
|
key: string;
|
|
default?: string;
|
|
extra: string;
|
|
comment: string;
|
|
}
|
|
|
|
export interface IndexDefinition {
|
|
name: string;
|
|
columnName: string;
|
|
nonUnique: number;
|
|
seqInIndex: number;
|
|
indexType: string;
|
|
}
|
|
|
|
export interface ForeignKeyDefinition {
|
|
name: string;
|
|
columnName: string;
|
|
refTableName: string;
|
|
refColumnName: string;
|
|
constraintName: string;
|
|
}
|
|
|
|
export interface TriggerDefinition {
|
|
name: string;
|
|
timing: string;
|
|
event: string;
|
|
statement: string;
|
|
}
|
|
|
|
export interface TabData {
|
|
id: string;
|
|
title: string;
|
|
type: 'query' | 'table' | 'design' | 'redis-keys' | 'redis-command' | 'trigger' | 'view-def' | 'routine-def';
|
|
connectionId: string;
|
|
dbName?: string;
|
|
tableName?: string;
|
|
query?: string;
|
|
initialTab?: string;
|
|
readOnly?: boolean;
|
|
redisDB?: number; // Redis database index for redis tabs
|
|
triggerName?: string; // Trigger name for trigger tabs
|
|
viewName?: string; // View name for view definition tabs
|
|
routineName?: string; // Routine name for function/procedure definition tabs
|
|
routineType?: string; // 'FUNCTION' or 'PROCEDURE'
|
|
}
|
|
|
|
export interface DatabaseNode {
|
|
title: string;
|
|
key: string;
|
|
isLeaf?: boolean;
|
|
children?: DatabaseNode[];
|
|
icon?: any;
|
|
}
|
|
|
|
export interface SavedQuery {
|
|
id: string;
|
|
name: string;
|
|
sql: string;
|
|
connectionId: string;
|
|
dbName: string;
|
|
createdAt: number;
|
|
}
|
|
|
|
// Redis types
|
|
export interface RedisKeyInfo {
|
|
key: string;
|
|
type: string;
|
|
ttl: number;
|
|
}
|
|
|
|
export interface RedisScanResult {
|
|
keys: RedisKeyInfo[];
|
|
cursor: number;
|
|
}
|
|
|
|
export interface RedisValue {
|
|
type: 'string' | 'hash' | 'list' | 'set' | 'zset';
|
|
ttl: number;
|
|
value: any;
|
|
length: number;
|
|
}
|
|
|
|
export interface RedisDBInfo {
|
|
index: number;
|
|
keys: number;
|
|
}
|
|
|
|
export interface ZSetMember {
|
|
member: string;
|
|
score: number;
|
|
}
|