MCPcopy Create free account
hub / github.com/Effect-TS/effect / resolveArray

Function resolveArray

packages/effect/src/Config.ts:434–462  ·  view source on GitHub ↗
(
  results: ReadonlyArray<Result.Result<Resolution<any>, EvaluationFailure>>
)

Source from the content-addressed store, hash-verified

432}
433
434const resolveArray = (
435 results: ReadonlyArray<Result.Result<Resolution<any>, EvaluationFailure>>
436): Effect.Effect<Resolution<Array<any>>, EvaluationFailure> => {
437 const values: Array<any> = []
438 let firstFailure: EvaluationFailure | undefined
439 let firstAbsent: Absent | undefined
440 let hasInput = false
441 for (const result of results) {
442 if (Result.isFailure(result)) {
443 firstFailure ??= result.failure
444 hasInput = hasInput || result.failure.hasInput
445 continue
446 }
447 const resolution = result.success
448 if (resolution._tag === "Absent") {
449 firstAbsent ??= resolution
450 } else {
451 values.push(resolution.value)
452 hasInput = hasInput || resolution.hasInput
453 }
454 }
455 if (firstFailure !== undefined) {
456 return Effect.fail(evaluationFailure(firstFailure.error, hasInput))
457 }
458 if (firstAbsent !== undefined) {
459 return hasInput ? Effect.fail(evaluationFailure(firstAbsent.error, true)) : Effect.succeed(firstAbsent)
460 }
461 return Effect.succeed(resolved(values, hasInput))
462}
463
464const resolveRecord = (
465 results: Record<string, Result.Result<Resolution<any>, EvaluationFailure>>

Callers

nothing calls this directly

Calls 5

evaluationFailureFunction · 0.85
pushMethod · 0.80
resolvedFunction · 0.70
failMethod · 0.45
succeedMethod · 0.45

Tested by

no test coverage detected