diff --git a/Sources/ClashX Dashboard/ClashX Links/Models/ClashProxy.swift b/Sources/ClashX Dashboard/ClashX Links/Models/ClashProxy.swift index c0b74da..f0dad7f 100644 --- a/Sources/ClashX Dashboard/ClashX Links/Models/ClashProxy.swift +++ b/Sources/ClashX Dashboard/ClashX Links/Models/ClashProxy.swift @@ -9,7 +9,7 @@ import Cocoa import SwiftyJSON -enum ClashProxyType: String, Codable { +enum ClashProxyType: String, Codable, CaseIterable { case urltest = "URLTest" case fallback = "Fallback" case loadBalance = "LoadBalance" @@ -27,13 +27,19 @@ enum ClashProxyType: String, Codable { case vless = "Vless" case hysteria = "Hysteria" - case wireguardMeta = "WireGuard" case wireguard = "Wireguard" case tuic = "Tuic" case pass = "Pass" case unknown = "Unknown" + + init(from decoder: Decoder) throws { + let container = try decoder.singleValueContainer() + let rawString = try container.decode(String.self) + + self = ClashProxyType.allCases.first(where: { $0.rawValue.caseInsensitiveCompare(rawString) == .orderedSame }) ?? .unknown + } static let proxyGroups: [ClashProxyType] = [.select, .urltest, .fallback, .loadBalance]