From f161aef4ac25cee622c6519b2df89fd28c8333d9 Mon Sep 17 00:00:00 2001 From: PlaceboAddict Date: Sun, 1 Dec 2024 21:14:19 +0300 Subject: [PATCH] The JsLibsodiumLoader file has been fixed, but the quality of fix is unknown --- .../com/ionspin/kotlin/crypto/JsSodiumLoader.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/multiplatform-crypto-libsodium-bindings/src/wasmJsMain/kotlin/com/ionspin/kotlin/crypto/JsSodiumLoader.kt b/multiplatform-crypto-libsodium-bindings/src/wasmJsMain/kotlin/com/ionspin/kotlin/crypto/JsSodiumLoader.kt index f85eacd..391c0c2 100644 --- a/multiplatform-crypto-libsodium-bindings/src/wasmJsMain/kotlin/com/ionspin/kotlin/crypto/JsSodiumLoader.kt +++ b/multiplatform-crypto-libsodium-bindings/src/wasmJsMain/kotlin/com/ionspin/kotlin/crypto/JsSodiumLoader.kt @@ -36,8 +36,13 @@ object JsSodiumLoader { //Dynamic может быть Юнит, но Unit не может быть JsAny? continuation.resumeWith(Result.success(Unit)) null - }.catch { e-> - continuation.resumeWith(Result.failure(e)) + }.catch { e -> + val throwable = e as? Throwable + if (throwable != null) { + continuation.resumeWith(Result.failure(throwable)) + } else { + continuation.resumeWith(Result.failure(Exception("Error: $e"))) + } null } } else { @@ -45,9 +50,9 @@ object JsSodiumLoader { } } - fun loadWithCallback(doneCallback: () -> (Unit)) { + fun loadWithCallback(doneCallback: () -> (JsAny)) { if (!getSodiumLoaded()) { - _libsodiumPromise.then { + _libsodiumPromise.then { sodium_init() sodiumLoaded = true doneCallback.invoke()