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

Function takeUntilEffect

packages/effect/src/Sink.ts:1767–1781  ·  view source on GitHub ↗
(
  predicate: (input: In) => Effect.Effect<boolean, E, R>
)

Source from the content-addressed store, hash-verified

1765 * @since 4.0.0
1766 */
1767export const takeUntilEffect = <In, E, R>(
1768 predicate: (input: In) => Effect.Effect<boolean, E, R>
1769): Sink<Array<In>, In, In, E, R> =>
1770 suspend(() => {
1771 let done = false
1772 return takeWhileEffect((input) => {
1773 if (done) {
1774 return Effect.succeed(false)
1775 }
1776 return Effect.map(predicate(input), (b) => {
1777 done = b
1778 return true
1779 })
1780 })
1781 })
1782
1783/**
1784 * A sink that executes the provided effectful function for every item fed

Callers 1

Stream.tsFile · 0.85

Calls 5

takeWhileEffectFunction · 0.85
predicateFunction · 0.85
suspendFunction · 0.70
succeedMethod · 0.45
mapMethod · 0.45

Tested by

no test coverage detected