Rocky_Mountain_Vending/.pnpm-store/v10/files/d9/c8773d46aef263480ad7cfbe643c6c322fd219ed00188796537b46b733a9f5a75fd50ed92b48ad805c43603001fd4a50c7ba6d68c135959b4e50b75cf7a32d
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

44 lines
1.3 KiB
Text

import { reduce } from './reduce';
import { OperatorFunction } from '../types';
import { operate } from '../util/lift';
const arrReducer = (arr: any[], value: any) => (arr.push(value), arr);
/**
* Collects all source emissions and emits them as an array when the source completes.
*
* <span class="informal">Get all values inside an array when the source completes</span>
*
* ![](toArray.png)
*
* `toArray` will wait until the source Observable completes before emitting
* the array containing all emissions. When the source Observable errors no
* array will be emitted.
*
* ## Example
*
* ```ts
* import { interval, take, toArray } from 'rxjs';
*
* const source = interval(1000);
* const example = source.pipe(
* take(10),
* toArray()
* );
*
* example.subscribe(value => console.log(value));
*
* // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
* ```
*
* @return A function that returns an Observable that emits an array of items
* emitted by the source Observable when source completes.
*/
export function toArray<T>(): OperatorFunction<T, T[]> {
// Because arrays are mutable, and we're mutating the array in this
// reducer process, we have to encapsulate the creation of the initial
// array within this `operate` function.
return operate((source, subscriber) => {
reduce(arrReducer, [] as T[])(source).subscribe(subscriber);
});
}