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

    Function sum

    • Creates a sink summing the items of the feed.

      Items are added in source order, seeding the total with the first one, so summing stays within constant memory whatever the size of the feed, but never completes on an infinite source. number items are added as IEEE 754 doubles and bigint items as exact integers: a feed is expected to carry one numeric type throughout, and mixing the two is reported rather than silently coerced.

      An empty feed resolves to undefined; callers wanting the additive identity supply it with ?? 0 or ?? 0n.

      Type Parameters

      • V extends number | bigint

        The type of items in the feed

      Returns Sink<V, V | undefined>

      A sink resolving to the sum of the items of the feed, or to undefined if the feed carried no items

      If the feed mixes number and bigint items

      await pipe(
      (items(1, 2, 3, 4, 5))
      (sum())
      ); // 15

      await pipe(
      (items(1n, 2n, 3n))
      (sum())
      ); // 6n

      await pipe(
      (items<number>())
      (sum())
      ) ?? 0; // 0