@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
TypeScript
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>>;