Buckets:
| import { Observable } from '../Observable'; | |
| import { ObservableInput, OperatorFunction } from '../types'; | |
| import { identity } from '../util/identity'; | |
| import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; | |
| import { pipe } from '../util/pipe'; | |
| import { mergeMap } from './mergeMap'; | |
| import { toArray } from './toArray'; | |
| /** | |
| * Collects all of the inner sources from source observable. Then, once the | |
| * source completes, joins the values using the given static. | |
| * | |
| * This is used for {@link combineLatestAll} and {@link zipAll} which both have the | |
| * same behavior of collecting all inner observables, then operating on them. | |
| * | |
| * @param joinFn The type of static join to apply to the sources collected | |
| * @param project The projection function to apply to the values, if any | |
| */ | |
| export function joinAllInternals<T, R>(joinFn: (sources: ObservableInput<T>[]) => Observable<T>, project?: (...args: any[]) => R) { | |
| return pipe( | |
| // Collect all inner sources into an array, and emit them when the | |
| // source completes. | |
| toArray() as OperatorFunction<ObservableInput<T>, ObservableInput<T>[]>, | |
| // Run the join function on the collected array of inner sources. | |
| mergeMap((sources) => joinFn(sources)), | |
| // If a projection function was supplied, apply it to each result. | |
| project ? mapOneOrManyArgs(project) : (identity as any) | |
| ); | |
| } | |
Xet Storage Details
- Size:
- 1.36 kB
- Xet hash:
- 2c556f313012bc0c466218e0926d7e8dc996052679cf94f4b92623050015dfe9
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.