Private
Public Access
1
0
Files
u-desk/web/src/api/system.ts

96 lines
2.2 KiB
TypeScript

/**
* 系统信息相关 API
*/
import type { SystemInfo, CPU, Memory, Disk, File } from './types'
/**
* 获取系统信息
*/
export async function getSystemInfo(): Promise<SystemInfo> {
if (!window.go?.main?.App?.GetSystemInfo) {
throw new Error('GetSystemInfo API 不可用')
}
return await window.go.main.App.GetSystemInfo()
}
/**
* 获取 CPU 信息
*/
export async function getCPUInfo(): Promise<CPU> {
if (!window.go?.main?.App?.GetCPUInfo) {
throw new Error('GetCPUInfo API 不可用')
}
return await window.go.main.App.GetCPUInfo()
}
/**
* 获取内存信息
*/
export async function getMemoryInfo(): Promise<Memory> {
if (!window.go?.main?.App?.GetMemoryInfo) {
throw new Error('GetMemoryInfo API 不可用')
}
return await window.go.main.App.GetMemoryInfo()
}
/**
* 获取磁盘信息
*/
export async function getDiskInfo(): Promise<Disk> {
if (!window.go?.main?.App?.GetDiskInfo) {
throw new Error('GetDiskInfo API 不可用')
}
return await window.go.main.App.GetDiskInfo()
}
/**
* 列出目录文件
*/
export async function listDir(path: string): Promise<File[]> {
if (!window.go?.main?.App?.ListDir) {
throw new Error('ListDir API 不可用')
}
return await window.go.main.App.ListDir(path)
}
/**
* 读取文件
*/
export async function readFile(path: string): Promise<string> {
if (!window.go?.main?.App?.ReadFile) {
throw new Error('ReadFile API 不可用')
}
return await window.go.main.App.ReadFile(path)
}
/**
* 写入文件
*/
export async function writeFile(path: string, content: string): Promise<void> {
if (!window.go?.main?.App?.WriteFile) {
throw new Error('WriteFile API 不可用')
}
await window.go.main.App.WriteFile(path, content)
}
/**
* 删除文件或目录
*/
export async function deletePath(path: string): Promise<void> {
if (!window.go?.main?.App?.DeletePath) {
throw new Error('DeletePath API 不可用')
}
await window.go.main.App.DeletePath(path)
}
/**
* 获取环境变量
*/
export async function getEnvVars(): Promise<Record<string, string>> {
if (!window.go?.main?.App?.GetEnvVars) {
throw new Error('GetEnvVars API 不可用')
}
return await window.go.main.App.GetEnvVars()
}