diff --git a/Mediasoup/MediasoupClientErrorConverter.swift b/Mediasoup/MediasoupClientErrorConverter.swift index 7ba232e..edffcd1 100644 --- a/Mediasoup/MediasoupClientErrorConverter.swift +++ b/Mediasoup/MediasoupClientErrorConverter.swift @@ -22,12 +22,12 @@ internal func convertMediasoupErrors(_ throwingClosure: () throws -> T) throw if let underlyingError = error.errorUserInfo[NSUnderlyingErrorKey] as? NSError { throw MediasoupError.mediasoup(underlyingError) } else { - throw MediasoupError.unknown(error) + throw MediasoupError.unknown(description(error)) } @unknown default: - throw MediasoupError.unknown(error) + throw MediasoupError.unknown(description(error)) } } catch { - throw MediasoupError.unknown(error) + throw MediasoupError.unknown(error.localizedDescription) } } diff --git a/Mediasoup/MediasoupError.swift b/Mediasoup/MediasoupError.swift index d6906f1..f44834f 100644 --- a/Mediasoup/MediasoupError.swift +++ b/Mediasoup/MediasoupError.swift @@ -1,10 +1,25 @@ import Foundation -public enum MediasoupError: Error { +public enum MediasoupError: LocalizedError { case unsupported(String) case invalidState(String) case invalidParameters(String) case mediasoup(NSError) - case unknown(Error) + case unknown(String) + + public var errorDescription: String? { + switch self { + case .unsupported(let message): + return "Unsupported: \(message)" + case .invalidState(let message): + return "Invalid State: \(message)" + case .invalidParameters(let message): + return "Invalid Parameters: \(message)" + case .mediasoup(let error): + return error.localizedDescription + case .unknown(let message): + return message + } + } }