Instantly share code, notes, and snippets.

Embed
What would you like to do?
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS, } from '@angular/common/http';
import { MiniProfilerInterceptor } from './mini-profiler-http';
@NgModule({
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: MiniProfilerInterceptor, multi: true },
]
})
export class AppModule { }
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent, HttpResponse, HttpHeaders }
from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/do';
declare var MiniProfiler: any;
@Injectable()
export class MiniProfilerInterceptor implements HttpInterceptor {
intercept(
req: HttpRequest<any>,
next: HttpHandler
): Observable<HttpEvent<any>> {
return next.handle(req).do(evt => {
if (evt instanceof HttpResponse) {
if (typeof MiniProfiler !== 'undefined' && evt && evt.headers) {
this.makeMiniProfilerRequests(evt.headers);
}
}
});
}
private makeMiniProfilerRequests(headers: HttpHeaders) {
const miniProfilerHeaders = headers.getAll('x-miniprofiler-ids');
if (!miniProfilerHeaders) {
return;
}
miniProfilerHeaders.forEach(miniProfilerIdHeaderValue => {
const ids = JSON.parse(miniProfilerIdHeaderValue) as string[];
MiniProfiler.fetchResults(ids);
});
}
}
@sebfischer83

This comment has been minimized.

sebfischer83 commented Oct 18, 2018

What is declare var MiniProfiler: any; ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment