import { type Api, type NetworkTypes } from "easytier-frontend-lib"; import * as backend from "~/composables/backend"; export class GUIRemoteClient implements Api.RemoteClient { async validate_config(config: NetworkTypes.NetworkConfig): Promise { return backend.validateConfig(config); } async run_network(config: NetworkTypes.NetworkConfig, save: boolean): Promise { await backend.runNetworkInstance(config, save); } async get_network_info(inst_id: string): Promise { return backend.collectNetworkInfo(inst_id).then(infos => infos.info.map[inst_id]); } async list_network_instance_ids(): Promise { return backend.listNetworkInstanceIds(); } async delete_network(inst_id: string): Promise { await backend.deleteNetworkInstance(inst_id); } async update_network_instance_state(inst_id: string, disabled: boolean): Promise { await backend.updateNetworkConfigState(inst_id, disabled); } async save_config(config: NetworkTypes.NetworkConfig): Promise { await backend.saveNetworkConfig(config); } async get_network_config(inst_id: string): Promise { return backend.getConfig(inst_id); } async generate_config(config: NetworkTypes.NetworkConfig): Promise { try { return { toml_config: await backend.parseNetworkConfig(config) }; } catch (e) { return { error: e + "" }; } } async parse_config(toml_config: string): Promise { try { return { config: await backend.generateNetworkConfig(toml_config) } } catch (e) { return { error: e + "" }; } } async get_network_metas(instance_ids: string[]): Promise { return await backend.getNetworkMetas(instance_ids); } }