Asymmetrik/mean2-starter

View on GitHub
src/client/app/shared/observable-utils.class.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { Observable } from 'rxjs';
import { ObservableResult } from './observable-result.class';

export class ObservableUtils {
    constructor() {
    }

    public static wrapArray(items: Observable<any>[]): Observable<any> {
        return Observable
            .from(items)
            .concatAll()
            .toArray();
    }

    public static forkJoinSettled(observables: Observable<any>[]): Observable<any> {
        return Observable.forkJoin(observables.map((obs) => {
                return obs
                    .map((val: any) => new ObservableResult('success', val))
                    .catch((err: any) => Observable.of(new ObservableResult('error', err)));
            })
        );
    }

}