# callbag-buffer-until

> 👜 Callbag operator that buffers the stream until another stream emits a value.

Latest version **1.0.1** (published 2018-11-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install callbag-buffer-until
pnpm add callbag-buffer-until
yarn add callbag-buffer-until
bun add callbag-buffer-until
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2018-11-24 |
| First published | 2018-05-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 6.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Jeremy Lund |
| Maintainers | lund0n |
| Keywords | callbag, callbags |

## Links

- npm: https://www.npmjs.com/package/callbag-buffer-until
- Repository: https://github.com/lund0n/callbag-buffer-until
- Issues: https://github.com/lund0n/callbag-buffer-until/issues
- npm.io page: https://npm.io/package/callbag-buffer-until

## Recent versions

- 1.0.1 (latest) — 2018-11-24
- 1.0.0 — 2018-05-16

## README

# callbag-buffer-until

Callbag operator that buffers any stream data until another stream (the notifier) emits a value. Once that the notifier emits a value, all buffered and future stream values and passed downstream.

## API

### `bufferUntil(notifier, { size = 100 })`

- `notifier` _(required)_: the callbag that notifies this operator to flush its buffer and and push items through. Items will be buffered until this callbag pushes its first item.
- `size`  _(defaults to `100`)_: the maxium number of items to buffer. The oldest items are dropped when the number of items is exceeded.

## Example

```js
import { forEach, fromEvent, interval, pipe } from 'callbag-basics'
import bufferUntil from 'callbag-buffer-until'

pipe(
  interval(1000),
  bufferUntil(interval(2500))
  forEach(value => {
    // This will receive every value from interval, but no value will be sent
    // for 2.5 seconds. The buffered values will be sent, in order, all at once, followed by
    // any future values at the regular interval.
  })
)

pipe(
  fromEvent(document, 'mousemove'),
  bufferUntil(interval(2000), { size: 10 })
  forEach(value => {
    // This will receive the last 10 items prior to the 2s (2000ms) interval stream being triggered,
    // at the 2s mark, followed by all events thereafter.
  })
)
```

---
_Source: https://npm.io/package/callbag-buffer-until · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
