MCPcopy Create free account
hub / github.com/effect-app/libs / raceAll

Function raceAll

repos/effect/packages/effect/src/internal/effect.ts:1415–1470  ·  view source on GitHub ↗
(
  all: Iterable<Eff>,
  options?: {
    readonly onWinner?: (options: {
      readonly fiber: Fiber.Fiber<any, any>
      readonly index: number
      readonly parentFiber: Fiber.Fiber<any, any>
    }) => void
  }
)

Source from the content-addressed store, hash-verified

1413 ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B, E | E2, R | R2>
1414 <A, E, R, B, E2, R2>(
1415 self: Effect.Effect<A, E, R>,
1416 f: (a: A) => Effect.Effect<B, E2, R2>
1417 ): Effect.Effect<B, E | E2, R | R2>
1418 <A, E, R, B, E2, R2>(
1419 self: Effect.Effect<A, E, R>,
1420 f: Effect.Effect<B, E2, R2>
1421 ): Effect.Effect<B, E | E2, R | R2>
1422} = dual(
1423 2,
1424 <A, E, R, B, E2, R2>(
1425 self: Effect.Effect<A, E, R>,
1426 f: ((a: A) => Effect.Effect<B, E2, R2>) | Effect.Effect<B, E2, R2>
1427 ): Effect.Effect<B, E | E2, R | R2> =>
1428 flatMap(self, (a) => isEffect(f) ? f : internalCall(() => (f as (a: A) => Effect.Effect<B, E2, R2>)(a)))
1429)
1430
1431/** @internal */
1432export const tap: {
1433 <A, B, E2, R2>(
1434 f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
1435 ): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2, R | R2>
1436 <B, E2, R2>(
1437 f: Effect.Effect<B, E2, R2>
1438 ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2, R | R2>
1439 <A, E, R, B, E2, R2>(
1440 self: Effect.Effect<A, E, R>,
1441 f: (a: NoInfer<A>) => Effect.Effect<B, E2, R2>
1442 ): Effect.Effect<A, E | E2, R | R2>
1443 <A, E, R, B, E2, R2>(
1444 self: Effect.Effect<A, E, R>,
1445 f: Effect.Effect<B, E2, R2>
1446 ): Effect.Effect<A, E | E2, R | R2>
1447} = dual(
1448 2,
1449 <A, E, R, B, E2, R2>(
1450 self: Effect.Effect<A, E, R>,
1451 f: ((a: A) => Effect.Effect<B, E2, R2>) | Effect.Effect<B, E2, R2>
1452 ): Effect.Effect<A, E | E2, R | R2> =>
1453 flatMap(self, (a) => as(isEffect(f) ? f : internalCall(() => (f as (a: A) => Effect.Effect<B, E2, R2>)(a)), a))
1454)
1455
1456/** @internal */
1457export const asVoid = <A, E, R>(
1458 self: Effect.Effect<A, E, R>
1459): Effect.Effect<void, E, R> => flatMap(self, (_) => exitVoid)
1460
1461/** @internal */
1462export const sandbox = <A, E, R>(
1463 self: Effect.Effect<A, E, R>
1464): Effect.Effect<A, Cause.Cause<E>, R> => catchCause(self, fail)
1465
1466/** @internal */
1467export const raceAll = <Eff extends Effect.Effect<any, any, any>>(
1468 all: Iterable<Eff>,
1469 options?: {
1470 readonly onWinner?: (options: {
1471 readonly fiber: Fiber.Fiber<any, any>
1472 readonly index: number

Callers 1

effect.tsFile · 0.70

Calls 5

fiberInterruptAllFunction · 0.85
addObserverMethod · 0.80
callbackFunction · 0.70
onExitFunction · 0.70
addMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…