Some checks failed
Main Confidence / confidence (push) Failing after 45s
## Summary - introduce surface-aware compressed governance outcomes and reuse the shared truth/explanation seams for operator-first summaries - apply the compressed outcome hierarchy across baseline, evidence, review, review-pack, canonical review/evidence, and artifact-oriented operation-run surfaces - expand spec 214 fixtures and Pest coverage, and fix tenant-panel route assertions by generating explicit tenant-panel URLs in the affected Filament tests ## Validation - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - focused governance compression suite from `specs/214-governance-outcome-compression/quickstart.md` passed (`68` tests, `445` assertions) - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/InventoryItemResourceTest.php tests/Feature/Filament/BackupSetUiEnforcementTest.php tests/Feature/Filament/RestoreRunUiEnforcementTest.php` passed (`18` tests, `81` assertions) Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #253
45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
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` 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);
|
|
});
|
|
}
|