import { PublishContext } from '../subject' export const pairwise = () => ({ subscribe, next }: Pick, 'subscribe' | 'next'>) => { const buffer = [] subscribe(value => { if (buffer.length === 2) { buffer.shift() } buffer.push(value) if (buffer.length === 2) { next(buffer.slice()) } }) return () => { buffer.length = 0 } }