import { invoke } from '@tauri-apps/api/core' import { Api, type NetworkTypes } from 'easytier-frontend-lib' import { GetNetworkMetasResponse } from 'node_modules/easytier-frontend-lib/dist/modules/api' import { getAutoLaunchStatusAsync } from '~/modules/auto_launch' type NetworkConfig = NetworkTypes.NetworkConfig type ValidateConfigResponse = Api.ValidateConfigResponse type ListNetworkInstanceIdResponse = Api.ListNetworkInstanceIdResponse export async function parseNetworkConfig(cfg: NetworkConfig) { return invoke('parse_network_config', { cfg }) } export async function generateNetworkConfig(tomlConfig: string) { return invoke('generate_network_config', { tomlConfig }) } export async function runNetworkInstance(cfg: NetworkConfig, save: boolean) { return invoke('run_network_instance', { cfg, save }) } export async function collectNetworkInfo(instanceId: string) { return await invoke('collect_network_info', { instanceId }) } export async function setLoggingLevel(level: string) { return await invoke('set_logging_level', { level }) } export async function setTunFd(fd: number) { return await invoke('set_tun_fd', { fd }) } export async function getEasytierVersion() { return await invoke('easytier_version') } export async function listNetworkInstanceIds() { return await invoke('list_network_instance_ids') } export async function deleteNetworkInstance(instanceId: string) { return await invoke('remove_network_instance', { instanceId }) } export async function updateNetworkConfigState(instanceId: string, disabled: boolean) { return await invoke('update_network_config_state', { instanceId, disabled }) } export async function saveNetworkConfig(cfg: NetworkConfig) { return await invoke('save_network_config', { cfg }) } export async function validateConfig(cfg: NetworkConfig) { return await invoke('validate_config', { cfg }) } export async function getConfig(instanceId: string) { return await invoke('get_config', { instanceId }) } export async function sendConfigs() { let networkList: NetworkConfig[] = JSON.parse(localStorage.getItem('networkList') || '[]'); let autoStartInstIds = getAutoLaunchStatusAsync() ? JSON.parse(localStorage.getItem('autoStartInstIds') || '[]') : [] return await invoke('load_configs', { configs: networkList, enabledNetworks: autoStartInstIds }) } export async function getNetworkMetas(instanceIds: string[]) { return await invoke('get_network_metas', { instanceIds }) }