UNPKG

@ng-doc/builder

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

15 lines (14 loc) 1.38 kB
import { Observable, ObservableInputTuple } from 'rxjs'; import { BuilderState, BuilderStateTuple, CacheStrategy } from '../types'; /** * This function merges multiple observables and applies a project function when all observables are done. * It returns an Observable that emits either the value of type A[number] or a BuilderState<T>. * @param tag - A string representing the tag. * @param sources - An array of Observables. * @param project - A function that takes an array of BuilderState<R> and returns a Promise<T>. * @param cacheStrategy - An optional parameter that defines the cache strategy. * @param mapper * @returns An Observable that emits either the value of type A[number] or a BuilderState<T>. */ export declare function mergeFactory<TCacheData, A extends ReadonlyArray<BuilderState<unknown>>, T, M>(tag: string, sources: [...ObservableInputTuple<A>], project: (...args: [...BuilderStateTuple<A>]) => Promise<T>, cacheStrategy: CacheStrategy<TCacheData, T>, mapper: (source: [...BuilderStateTuple<A>][number]) => M): Observable<BuilderState<T | M>>; export declare function mergeFactory<TCacheData, A extends ReadonlyArray<BuilderState<unknown>>, T>(tag: string, sources: [...ObservableInputTuple<A>], project: (...args: [...BuilderStateTuple<A>]) => Promise<T>, cacheStrategy?: CacheStrategy<TCacheData, T>): Observable<A[number] | BuilderState<T>>;