UNPKG

first-npm-package-nicule

Version:

This isi first npm package

23 lines (20 loc) 923 B
import { Injectable } from '@angular/core'; import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpEventType } from '@angular/common/http'; import { Observable } from 'rxjs'; import { finalize, tap } from 'rxjs/operators'; import { ProgressTracker } from '.'; @Injectable() export class ProgressInterceptor implements HttpInterceptor { constructor(private progressTracker: ProgressTracker) { } intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { return next.handle(request).pipe( tap(event => { if (event.type === HttpEventType.UploadProgress) { const kbLoaded2 = event.loaded / event.total * 100; this.progressTracker.setProgress(kbLoaded2); } }), finalize(() => this.progressTracker.setProgress(undefined)) ); } }