<In>(predicate: Predicate<In>): Sink<Array<In>, In, In>Collects input elements until the predicate returns true, including the
matching element in the result.
constructors
Source effect/Sink.ts:17169 lines
export const const takeUntil: <In>(
predicate: Predicate<In>
) => Sink<Array<In>, In, In>
Collects input elements until the predicate returns true, including the
matching element in the result.
takeUntil = <function (type parameter) In in <In>(predicate: Predicate<In>): Sink<Array<In>, In, In>In>(predicate: Predicate<In>predicate: import PredicatePredicate<function (type parameter) In in <In>(predicate: Predicate<In>): Sink<Array<In>, In, In>In>): interface Sink<out A, in In = unknown, out L = never, out E = never, out R = never>A Sink<A, In, L, E, R> is used to consume elements produced by a Stream.
You can think of a sink as a function that will consume a variable amount of
In elements (could be 0, 1, or many), might fail with an error of type E,
and will eventually yield a value of type A together with a remainder of
type L (i.e. any leftovers).
Example (Running a sink with a stream)
import { Effect, Sink, Stream } from "effect"
// Create a simple sink that always succeeds with a value
const sink: Sink.Sink<number> = Sink.succeed(42)
// Use the sink to consume a stream
const stream = Stream.make(1, 2, 3)
const program = Stream.run(stream, sink)
Effect.runPromise(program).then(console.log)
// Output: 42
Namespace containing types and interfaces for Sink variance and type relationships.
Sink<interface Array<T>Array<function (type parameter) In in <In>(predicate: Predicate<In>): Sink<Array<In>, In, In>In>, function (type parameter) In in <In>(predicate: Predicate<In>): Sink<Array<In>, In, In>In, function (type parameter) In in <In>(predicate: Predicate<In>): Sink<Array<In>, In, In>In> =>
const suspend: <A, In, L, E, R>(
evaluate: LazyArg<Sink<A, In, L, E, R>>
) => Sink<A, In, L, E, R>
A sink that is created from a lazily evaluated sink.
suspend(() => {
let let done: booleandone = false
return const takeWhile: {
<In, Out extends In>(
refinement: Refinement<In, Out>
): Sink<Array<Out>, In, In>
<In>(predicate: Predicate<In>): Sink<
Array<In>,
In,
In
>
}
takeWhile((i: anyi) => {
if (let done: booleandone) return false
let done: booleandone = predicate: Predicate<In>predicate(i: anyi)
return true
})
})