bivcore-insight
Version:
A blockchain explorer for Bitcore
33 lines (30 loc) • 947 B
text/typescript
import {
HttpErrorResponse,
HttpHandler,
HttpInterceptor,
HttpRequest
} from '@angular/common/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/observable/empty';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/retry';
import { Observable } from 'rxjs/Observable';
import { Logger } from '../logger/logger';
()
export class HttpErrorInterceptor implements HttpInterceptor {
constructor(private logger: Logger) {}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<any> {
return next
.handle(request)
.retry(1)
.catch((err: HttpErrorResponse) => {
const errorMessage =
err.error instanceof Error
? `An error occurred: ${err.error.message}`
: `Error ${err.status}: ${err.message || err.error}`;
this.logger.error(errorMessage);
throw errorMessage;
});
}
}