diff --git a/Examples/xx-messenger/Package.swift b/Examples/xx-messenger/Package.swift index 688d224427828cafd5f220a0c4d0fd6c4061c356..c864b65ae011a37f81518206f61a791e5e93ec04 100644 --- a/Examples/xx-messenger/Package.swift +++ b/Examples/xx-messenger/Package.swift @@ -67,6 +67,7 @@ let package = Package( .target( name: "AppCore", dependencies: [ + .product(name: "Pulse", package: "Pulse"), .product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"), .product(name: "XXClient", package: "elixxir-dapps-sdk-swift"), .product(name: "XXDatabase", package: "client-ios-db"), diff --git a/Examples/xx-messenger/Sources/AppCore/Logger/Logger.swift b/Examples/xx-messenger/Sources/AppCore/Logger/Logger.swift new file mode 100644 index 0000000000000000000000000000000000000000..6766d98d4f6ef506112e5cee8d6efa060ec9b214 --- /dev/null +++ b/Examples/xx-messenger/Sources/AppCore/Logger/Logger.swift @@ -0,0 +1,45 @@ +import Foundation +import Pulse +import XCTestDynamicOverlay + +public struct Logger { + public enum Message: Equatable { + case error(NSError) + } + + public var run: (Message, String, String, UInt) -> Void + + public func callAsFunction( + _ msg: Message, + file: String = #file, + function: String = #function, + line: UInt = #line + ) { + run(msg, file, function, line) + } +} + +extension Logger { + public static func live() -> Logger { + Logger { msg, file, function, line in + switch msg { + case .error(let error): + LoggerStore.shared.storeMessage( + label: "xx-messenger", + level: .error, + message: error.localizedDescription, + metadata: [:], + file: file, + function: function, + line: line + ) + } + } + } +} + +extension Logger { + public static let unimplemented = Logger( + run: XCTUnimplemented("\(Self.self).error") + ) +}