mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
91 lines
2.5 KiB
Swift
91 lines
2.5 KiB
Swift
import PromiseKit
|
|
|
|
public extension Thenable {
|
|
|
|
@discardableResult
|
|
func then2<U>(_ body: @escaping (T) throws -> U) -> Promise<U.T> where U : Thenable {
|
|
return then(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func map2<U>(_ transform: @escaping (T) throws -> U) -> Promise<U> {
|
|
return map(on: Threading.workQueue, transform)
|
|
}
|
|
|
|
@discardableResult
|
|
func done2(_ body: @escaping (T) throws -> Void) -> Promise<Void> {
|
|
return done(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func get2(_ body: @escaping (T) throws -> Void) -> Promise<T> {
|
|
return get(on: Threading.workQueue, body)
|
|
}
|
|
}
|
|
|
|
public extension Thenable where T: Sequence {
|
|
|
|
@discardableResult
|
|
func mapValues2<U>(_ transform: @escaping (T.Iterator.Element) throws -> U) -> Promise<[U]> {
|
|
return mapValues(on: Threading.workQueue, transform)
|
|
}
|
|
}
|
|
|
|
public extension Guarantee {
|
|
|
|
@discardableResult
|
|
func then2<U>(_ body: @escaping (T) -> Guarantee<U>) -> Guarantee<U> {
|
|
return then(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func map2<U>(_ body: @escaping (T) -> U) -> Guarantee<U> {
|
|
return map(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func done2(_ body: @escaping (T) -> Void) -> Guarantee<Void> {
|
|
return done(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func get2(_ body: @escaping (T) -> Void) -> Guarantee<T> {
|
|
return get(on: Threading.workQueue, body)
|
|
}
|
|
}
|
|
|
|
public extension CatchMixin {
|
|
|
|
@discardableResult
|
|
func catch2(_ body: @escaping (Error) -> Void) -> PMKFinalizer {
|
|
return self.catch(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func recover2<U: Thenable>(_ body: @escaping(Error) throws -> U) -> Promise<T> where U.T == T {
|
|
return recover(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func recover2(_ body: @escaping(Error) -> Guarantee<T>) -> Guarantee<T> {
|
|
return recover(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func ensure2(_ body: @escaping () -> Void) -> Promise<T> {
|
|
return ensure(on: Threading.workQueue, body)
|
|
}
|
|
}
|
|
|
|
public extension CatchMixin where T == Void {
|
|
|
|
@discardableResult
|
|
func recover2(_ body: @escaping(Error) -> Void) -> Guarantee<Void> {
|
|
return recover(on: Threading.workQueue, body)
|
|
}
|
|
|
|
@discardableResult
|
|
func recover2(_ body: @escaping(Error) throws -> Void) -> Promise<Void> {
|
|
return recover(on: Threading.workQueue, body)
|
|
}
|
|
}
|