28 lines
938 B
Kotlin
28 lines
938 B
Kotlin
|
package com.cuvent.experiences.friends.camera.utils
|
||
|
|
||
|
import com.cuvent.experiences.friends.camera.CameraError
|
||
|
import com.cuvent.experiences.friends.camera.UnknownCameraError
|
||
|
import com.facebook.react.bridge.Promise
|
||
|
|
||
|
inline fun withPromise(promise: Promise, closure: () -> Any?) {
|
||
|
try {
|
||
|
val result = closure()
|
||
|
promise.resolve(result)
|
||
|
} catch (e: Throwable) {
|
||
|
e.printStackTrace()
|
||
|
val error = if (e is CameraError) e else UnknownCameraError(e)
|
||
|
promise.reject("${error.domain}/${error.id}", error.message, error.cause)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
inline fun withSuspendablePromise(promise: Promise, closure: () -> Any?) {
|
||
|
try {
|
||
|
val result = closure()
|
||
|
promise.resolve(result)
|
||
|
} catch (e: Throwable) {
|
||
|
e.printStackTrace()
|
||
|
val error = if (e is CameraError) e else UnknownCameraError(e)
|
||
|
promise.reject("${error.domain}/${error.id}", error.message, error.cause)
|
||
|
}
|
||
|
}
|