MCPcopy Index your code
hub / github.com/Effect-TS/effect / flattenCauseLoop

Function flattenCauseLoop

packages/effect/src/internal/cause.ts:480–509  ·  view source on GitHub ↗
(
  causes: Chunk.Chunk<Cause.Cause<unknown>>,
  flattened: Chunk.Chunk<HashSet.HashSet<unknown>>
)

Source from the content-addressed store, hash-verified

478
479/** @internal */
480const flattenCauseLoop = (
481 causes: Chunk.Chunk<Cause.Cause<unknown>>,
482 flattened: Chunk.Chunk<HashSet.HashSet<unknown>>
483): Chunk.Chunk<HashSet.HashSet<unknown>> => {
484 // eslint-disable-next-line no-constant-condition
485 while (1) {
486 const [parallel, sequential] = pipe(
487 causes,
488 Arr.reduce(
489 [HashSet.empty<unknown>(), Chunk.empty<Cause.Cause<unknown>>()] as const,
490 ([parallel, sequential], cause) => {
491 const [par, seq] = evaluateCause(cause)
492 return [
493 pipe(parallel, HashSet.union(par)),
494 pipe(sequential, Chunk.appendAll(seq))
495 ]
496 }
497 )
498 )
499 const updated = HashSet.size(parallel) > 0 ?
500 pipe(flattened, Chunk.prepend(parallel)) :
501 flattened
502 if (Chunk.isEmpty(sequential)) {
503 return Chunk.reverse(updated)
504 }
505 causes = sequential
506 flattened = updated
507 }
508 throw new Error(getBugErrorMessage("Cause.flattenCauseLoop"))
509}
510
511// -----------------------------------------------------------------------------
512// Finding

Callers 1

flattenCauseFunction · 0.85

Calls 5

evaluateCauseFunction · 0.85
getBugErrorMessageFunction · 0.85
pipeFunction · 0.70
sizeMethod · 0.65
isEmptyMethod · 0.65

Tested by

no test coverage detected