UNPKG

908 BJavaScriptView Raw
1import { AsyncIterableX } from './asynciterablex';
2export class PairwiseAsyncIterable extends AsyncIterableX {
3 constructor(source) {
4 super();
5 this._source = source;
6 }
7 async *[Symbol.asyncIterator]() {
8 let value, hasValue = false;
9 for await (const item of this._source) {
10 if (!hasValue) {
11 hasValue = true;
12 }
13 else {
14 yield [value, item];
15 }
16 value = item;
17 }
18 }
19}
20/**
21 * Returns a new sequence that triggers on the second and subsequent triggerings of the input sequence.
22 * @param {AsyncIterable<T>} source Source sequence.
23 * @return {AsyncIterable<T[]>} A sequence that triggers on successive pairs of iterations from the input sequence.
24 */
25export function pairwise(source) {
26 return new PairwiseAsyncIterable(source);
27}
28
29//# sourceMappingURL=pairwise.mjs.map