metatext/Shared/Extensions/Publisher+Extensions.swift
2020-07-31 00:13:54 -07:00

20 lines
553 B
Swift

// Copyright © 2020 Metabolist. All rights reserved.
import Foundation
import Combine
extension Publisher {
func assignErrorsToAlertItem<Root>(
to keyPath: ReferenceWritableKeyPath<Root, AlertItem?>,
on object: Root) -> AnyPublisher<Output, Never> {
self.catch { error -> AnyPublisher<Output, Never> in
DispatchQueue.main.async {
object[keyPath: keyPath] = AlertItem(error: error)
}
return Empty().eraseToAnyPublisher()
}
.eraseToAnyPublisher()
}
}