@metreeca/flow - v0.10.0
    Preparing search index...

    Function seek

    • Creates a sink retrieving the first matching item of the feed, failing if none does.

      Items are tested in source order and consumption stops at the first match, leaving the rest of the feed unconsumed.

      A feed carrying no matching item fails the sink instead of resolving to undefined as find does, so the item handed back is usable as is, with no check to tell a missing item from an undefined item the feed legitimately carries.

      Note

      • Incremental: items are drawn only until one matches, so an infinite feed completes unless none does.
      • Streaming: items are tested one at a time, none retained.
      • Stateless: every item is tested on its own.

      Type Parameters

      • V

        The type of items in the feed

      Parameters

      • predicate: (item: NoInfer<V>) => Awaitable<boolean> = ...

        The function testing each item, defaulting to a test matching every item, which retrieves the first item of the feed

      Returns Sink<V, V>

      A sink resolving to the first item matching predicate

      Error If no item matches predicate

      await pipe(
      (items([1, 2, 3, 4, 5]))
      (seek(n => n > 3))
      ); // 4

      await pipe(
      (items([1, 2, 3, 4, 5]))
      (seek())
      ); // 1