aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/core/routing/preload-selected-modules-list.ts
blob: dd5be6ad948c9886cc668f1600f10118a4c17618 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import { Route, PreloadingStrategy } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/timer';
import 'rxjs/add/operator/switchMap';

export class PreloadSelectedModulesList implements PreloadingStrategy {
  preload(route: Route, load: Function): Observable<any> {
    if (!route.data || !route.data.preload) return Observable.of(null);

    if (typeof route.data.preload === 'number') {
      return Observable.timer(route.data.preload).switchMap(() => load());
    }

    return load();
  }
}