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

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

    if (typeof route.data.preload === 'number') {
      return observableTimer(route.data.preload).pipe(switchMap(() => load()))
    }

    return load()
  }
}