diff --git a/.gitignore b/.gitignore index 1c74d19..0533ab4 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,5 @@ dist .idea .vscode release -src-tauri/easytier-cli.exe -src-tauri/easytier-core.exe -src-tauri/Packet.dll -src-tauri/wintun.dll + +src-tauri/easytier/logs \ No newline at end of file diff --git a/composables/configJson.ts b/composables/configJson.ts index 06d9349..424e6d5 100644 --- a/composables/configJson.ts +++ b/composables/configJson.ts @@ -1,16 +1,45 @@ import { BaseDirectory, writeTextFile } from "@tauri-apps/plugin-fs"; import useMainStore from "@/stores/index"; import { ElMessage } from "element-plus"; -export const updateConfigJson = async () => { - +import { uniq, intersection, isNil } from "lodash-es"; +export const updateConfigJson = async (configJsonSeverUrl: Array | string | null | undefined) => { const mainStore = useMainStore(); - const path = import.meta.env.VITE_CONFIG_FILE_NAME; - try { - const { proxyNetworks, autoStart, relayAllPeerrpc, coonectAfterStart, multiThread, enablExitNode, useSmoltcp, saveErrorLog, logLevel, ...otherConfig } = - mainStore.config; - await writeTextFile(path, JSON.stringify(otherConfig, null, 4), { baseDir: BaseDirectory.Resource }); - } catch (err) { - console.log(err); - ElMessage.error(`更新config.json失败`); - } -} + const path = import.meta.env.VITE_CONFIG_FILE_NAME; + if (isNil(configJsonSeverUrl)) { + configJsonSeverUrl = []; + } + const isArray = Array.isArray(configJsonSeverUrl); + const isString = typeof configJsonSeverUrl === "string"; + try { + const { + proxyNetworks, + autoStart, + relayAllPeerrpc, + coonectAfterStart, + multiThread, + enablExitNode, + useSmoltcp, + saveErrorLog, + logLevel, + serverUrl, + ...otherConfig + } = mainStore.config; + let writeServerUrl: Array | string = serverUrl; + if (isArray) { + writeServerUrl = intersection( + uniq([serverUrl, ...configJsonSeverUrl]).filter(boolean => boolean), + mainStore.basePeers + ); + } + if (isString && configJsonSeverUrl) { + writeServerUrl = intersection( + uniq([serverUrl, ...(configJsonSeverUrl as string).split(",")]).filter(boolean => boolean), + mainStore.basePeers + ).join(","); + } + await writeTextFile(path, JSON.stringify({ serverUrl: writeServerUrl, ...otherConfig }, null, 4), { baseDir: BaseDirectory.Resource }); + } catch (err) { + console.log(err); + ElMessage.error(`更新config.json失败`); + } +}; diff --git a/package.json b/package.json index 0e19b27..4146e74 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "author": "leizi97", "description": "A simple network initiator based on Easytier", - "version": "1.1.8", + "version": "1.1.9", "scripts": { "dev": "nuxt dev --dotenv env/.env.dev --host 0.0.0.0", "build": "nuxt generate --dotenv env/.env.prod" diff --git a/pages/advance.vue b/pages/advance.vue index 5f05d40..a8f2465 100644 --- a/pages/advance.vue +++ b/pages/advance.vue @@ -1,19 +1,12 @@