| 86 | readonly error: Cause.Cause<E> | undefined |
| 87 | } |
| 88 | |
| 89 | export function make<A, E, R>(self: Effect.Effect<A, E, R>) { |
| 90 | const result = shallowRef(AsyncResult.initial() as AsyncResult.AsyncResult<A, E>) |
| 91 | |
| 92 | const execute = Effect |
| 93 | .sync(() => { |
| 94 | result.value = AsyncResult.waiting(result.value) |
| 95 | }) |
| 96 | .pipe( |
| 97 | Effect.andThen(self), |
| 98 | Effect.exit, |
| 99 | Effect.map(AsyncResult.fromExit), |
| 100 | Effect.flatMap((r) => Effect.sync(() => result.value = r)) |
| 101 | ) |
| 102 | |
| 103 | const latestSuccess = computed(() => Option.getOrUndefined(AsyncResult.value(result.value))) |
| 104 | |
| 105 | return tuple(result, latestSuccess, execute) |
| 106 | } |
| 107 | |
| 108 | /** |