| 209 | ) |
| 210 | |
| 211 | const preserveInputEvidence = <T>( |
| 212 | self: Effect.Effect<Resolution<T>, EvaluationFailure>, |
| 213 | hasInput: boolean |
| 214 | ): Effect.Effect<Resolution<T>, EvaluationFailure> => { |
| 215 | if (!hasInput) return self |
| 216 | return self.pipe( |
| 217 | Effect.mapErrorEager((failure) => evaluationFailure(failure.error, true)), |
| 218 | Effect.flatMapEager((resolution) => |
| 219 | resolution._tag === "Resolved" |
| 220 | ? Effect.succeed(resolved(resolution.value, true)) |
| 221 | : Effect.fail(evaluationFailure(resolution.error, true)) |
| 222 | ) |
| 223 | ) |
| 224 | } |
| 225 | |
| 226 | /** |
| 227 | * Transforms the parsed value of a config with a pure function. |