Skip to content

Instantly share code, notes, and snippets.

@Shaddix
Last active January 5, 2021 06:30
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Shaddix/d5585f46334efa86ad3e685541869c18 to your computer and use it in GitHub Desktop.
Save Shaddix/d5585f46334efa86ad3e685541869c18 to your computer and use it in GitHub Desktop.
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);
});
}
}
@x3weird
Copy link

x3weird commented Jan 5, 2021

Hi, thanks for this gist, I am implementing the same thing but I was wondering do I need to install mini profiler npm package?

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