Skip to content

Instantly share code, notes, and snippets.

@nilsmehlhorn
nilsmehlhorn / 0-throw-for-codes.ts
Last active March 17, 2020 13:51
RxJS operator for throwing semantic errors for certain HTTP status codes (now part of ngx-operators)
import { Observable, throwError } from 'rxjs'
import { catchError } from 'rxjs/operators'
import { HttpErrorResponse } from '@angular/common/http'
export const throwForCodes = (codeErrors: Array<[number, () => Error]>) => {
const mappedCodeErrors = new Map(codeErrors)
return <T>(source: Observable<T>) =>
source.pipe(catchError(error => {
if (error instanceof HttpErrorResponse) {
const mappedErrorFn = mappedCodeErrors.get(error.status)