@@ -2,7 +2,7 @@ package io.github.vigoo.clipp
22
33import cats .data .NonEmptyList
44import io .github .vigoo .clipp .errors .CustomParserError
5- import zio .{CanFail , Console , Runtime , Tag , URIO , ZIO , ZIOAppArgs , ZLayer }
5+ import zio .{CanFail , Console , Runtime , Tag , Unsafe , URIO , ZIO , ZIOAppArgs , ZLayer }
66
77package object zioapi {
88 type ClippEnv = Any
@@ -32,22 +32,30 @@ package object zioapi {
3232
3333 def liftZIO [R , E , T ](description : String , examples : NonEmptyList [T ])(f : ZIO [R , E , T ])(implicit runtime : Runtime [R ], ev : CanFail [E ], customParserError : CustomParserError [E ]): Parameter .Spec [T ] =
3434 syntax.liftEither(description, examples) {
35- runtime.unsafeRun(f.either)
35+ Unsafe .unsafeCompat { implicit u =>
36+ runtime.unsafe.run(f.either).getOrThrowFiberFailure()
37+ }
3638 }
3739
3840 def liftZIO [R , E , T ](description : String , example : T )(f : ZIO [R , E , T ])(implicit runtime : Runtime [R ], ev : CanFail [E ], customParserError : CustomParserError [E ]): Parameter .Spec [T ] =
3941 syntax.liftEither(description, example) {
40- runtime.unsafeRun(f.either)
42+ Unsafe .unsafeCompat { implicit u =>
43+ runtime.unsafe.run(f.either).getOrThrowFiberFailure()
44+ }
4145 }
4246
4347 def liftURIO [R , T ](description : String , examples : NonEmptyList [T ])(f : URIO [R , T ])(implicit runtime : Runtime [R ]): Parameter .Spec [T ] =
44- syntax.lift(description, examples) {
45- runtime.unsafeRun(f)
48+ syntax.lift(description, examples) {
49+ Unsafe .unsafeCompat { implicit u =>
50+ runtime.unsafe.run(f).getOrThrowFiberFailure()
51+ }
4652 }
4753
4854 def liftURIO [R , T ](description : String , example : T )(f : URIO [R , T ])(implicit runtime : Runtime [R ]): Parameter .Spec [T ] =
4955 syntax.lift(description, example) {
50- runtime.unsafeRun(f)
56+ Unsafe .unsafeCompat { implicit u =>
57+ runtime.unsafe.run(f).getOrThrowFiberFailure()
58+ }
5159 }
5260
5361 case class ZioDSL [R ](runtime : Runtime [R ]) extends syntax {
0 commit comments