Files
swift-tca-extras/Sources/ComposableSubscriber/Effect+fail.swift

42 lines
1.1 KiB
Swift

import ComposableArchitecture
import OSLog
extension Effect {
/// An effect that throws a runtime warning and optionally logs an error message.
@available(macOS 11.0, iOS 14.0, watchOS 7.0, tvOS 14.0, *)
public static func fail(
_ message: String,
logger: Logger? = nil
) -> Self {
XCTFail("\(message)")
logger?.error("\(message)")
return .none
}
/// An effect that throws a runtime warning and optionally logs an error message.
@available(macOS 11.0, iOS 14.0, watchOS 7.0, tvOS 14.0, *)
public static func fail(
prefix: String = "Failed error:",
error: any Error,
logger: Logger
) -> Self {
return .fail(prefix: prefix, error: error, log: { logger.error("\($0)") })
}
/// An effect that throws a runtime warning and optionally logs an error message.
public static func fail(
prefix: String = "Failed error:",
error: any Error,
log: ((String) -> Void)? = nil
) -> Self {
let message = "\(prefix) \(error.localizedDescription)"
XCTFail("\(message)")
log?("\(message)")
return .none
}
}