- Wails v2 + Go 1.21+ + Vue 3 dark UI - 3 buttons: Check env (auto-install dsh) / Start dsh web / Stop - 升级 / 检查版本 一键按钮 - 启动后窗口自动最小化到 Dock - 顶部 logo 鼠标 hover 显示大图预览 - scripts/: build-mac.sh, build-windows.bat, install-app.sh - ui-design/: 视觉设计稿 (HTML + tokens)
110 lines
2.9 KiB
TypeScript
Executable File
110 lines
2.9 KiB
TypeScript
Executable File
export namespace main {
|
|
|
|
export class CheckResult {
|
|
nodePath: string;
|
|
nodeVersion: string;
|
|
nodeOK: boolean;
|
|
dshPath: string;
|
|
dshVersion: string;
|
|
credFile: string;
|
|
credExists: boolean;
|
|
homeDshDir: string;
|
|
portBusy: boolean;
|
|
portBusyBy: string;
|
|
issues: string[];
|
|
|
|
static createFrom(source: any = {}) {
|
|
return new CheckResult(source);
|
|
}
|
|
|
|
constructor(source: any = {}) {
|
|
if ('string' === typeof source) source = JSON.parse(source);
|
|
this.nodePath = source["nodePath"];
|
|
this.nodeVersion = source["nodeVersion"];
|
|
this.nodeOK = source["nodeOK"];
|
|
this.dshPath = source["dshPath"];
|
|
this.dshVersion = source["dshVersion"];
|
|
this.credFile = source["credFile"];
|
|
this.credExists = source["credExists"];
|
|
this.homeDshDir = source["homeDshDir"];
|
|
this.portBusy = source["portBusy"];
|
|
this.portBusyBy = source["portBusyBy"];
|
|
this.issues = source["issues"];
|
|
}
|
|
}
|
|
export class InstallResult {
|
|
ok: boolean;
|
|
error: string;
|
|
output: string;
|
|
|
|
static createFrom(source: any = {}) {
|
|
return new InstallResult(source);
|
|
}
|
|
|
|
constructor(source: any = {}) {
|
|
if ('string' === typeof source) source = JSON.parse(source);
|
|
this.ok = source["ok"];
|
|
this.error = source["error"];
|
|
this.output = source["output"];
|
|
}
|
|
}
|
|
export class StartResult {
|
|
ok: boolean;
|
|
url: string;
|
|
error: string;
|
|
output: string;
|
|
hidden: boolean;
|
|
|
|
static createFrom(source: any = {}) {
|
|
return new StartResult(source);
|
|
}
|
|
|
|
constructor(source: any = {}) {
|
|
if ('string' === typeof source) source = JSON.parse(source);
|
|
this.ok = source["ok"];
|
|
this.url = source["url"];
|
|
this.error = source["error"];
|
|
this.output = source["output"];
|
|
this.hidden = source["hidden"];
|
|
}
|
|
}
|
|
export class StatusResult {
|
|
running: boolean;
|
|
url: string;
|
|
startedAt: string;
|
|
pid: number;
|
|
|
|
static createFrom(source: any = {}) {
|
|
return new StatusResult(source);
|
|
}
|
|
|
|
constructor(source: any = {}) {
|
|
if ('string' === typeof source) source = JSON.parse(source);
|
|
this.running = source["running"];
|
|
this.url = source["url"];
|
|
this.startedAt = source["startedAt"];
|
|
this.pid = source["pid"];
|
|
}
|
|
}
|
|
export class UpdateInfo {
|
|
installed: string;
|
|
latest: string;
|
|
hasUpdate: boolean;
|
|
raw: string;
|
|
|
|
static createFrom(source: any = {}) {
|
|
return new UpdateInfo(source);
|
|
}
|
|
|
|
constructor(source: any = {}) {
|
|
if ('string' === typeof source) source = JSON.parse(source);
|
|
this.installed = source["installed"];
|
|
this.latest = source["latest"];
|
|
this.hasUpdate = source["hasUpdate"];
|
|
this.raw = source["raw"];
|
|
}
|
|
}
|
|
|
|
}
|
|
|