@igo2/core
Version: 
1 lines • 9.64 kB
Source Map (JSON)
{"version":3,"file":"igo2-core-request.mjs","sources":["../../../packages/core/request/src/error.interceptor.ts","../../../packages/core/request/src/error.module.ts","../../../packages/core/request/src/logging.interceptor.ts","../../../packages/core/request/src/logging.module.ts","../../../packages/core/request/src/igo2-core-request.ts"],"sourcesContent":["import {\n  HttpErrorResponse,\n  HttpEvent,\n  HttpHandler,\n  HttpInterceptor,\n  HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { MessageService } from '@igo2/core/message';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ErrorInterceptor implements HttpInterceptor {\n  constructor(private messageService: MessageService) {}\n\n  intercept(\n    originalReq: HttpRequest<any>,\n    next: HttpHandler\n  ): Observable<HttpEvent<any>> {\n    const interceptError = originalReq.headers.get('interceptError');\n    const req = originalReq.clone({\n      headers: originalReq.headers.delete('interceptError')\n    });\n    if (interceptError === 'false') {\n      return next.handle(req);\n    }\n    const errorContainer = { httpError: undefined };\n    return next.handle(req).pipe(\n      catchError((error) => this.handleError(error, errorContainer)),\n      finalize(() => {\n        const httpError = errorContainer.httpError;\n        if (!httpError) {\n          return;\n        }\n\n        if (httpError.error.toDisplay) {\n          this.handleCaughtError(httpError);\n        } else if (!httpError.error.caught) {\n          this.handleUncaughtError(httpError);\n        }\n      })\n    );\n  }\n\n  private handleError(\n    httpError: HttpErrorResponse,\n    errorContainer: { httpError: HttpErrorResponse }\n  ) {\n    if (httpError instanceof HttpErrorResponse) {\n      const errorObj = httpError.error === 'object' ? httpError.error : {};\n      errorObj.message = httpError.error?.message || httpError.statusText;\n      errorObj.caught = false;\n\n      httpError = new HttpErrorResponse({\n        error: errorObj,\n        headers: httpError.headers,\n        status: httpError.status,\n        statusText: httpError.statusText,\n        url: httpError.url\n      });\n    }\n\n    errorContainer.httpError = httpError;\n    return throwError(httpError);\n  }\n\n  private handleCaughtError(httpError: HttpErrorResponse) {\n    httpError.error.caught = true;\n    this.messageService.error(httpError.error.message, httpError.error.title, {\n      progressBar: false\n    });\n  }\n\n  private handleUncaughtError(httpError: HttpErrorResponse) {\n    httpError.error.caught = true;\n    this.messageService.error(\n      'igo.core.errors.uncaught.message',\n      'igo.core.errors.uncaught.title',\n      {\n        progressBar: false\n      }\n    );\n  }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport {\n  ModuleWithProviders,\n  NgModule,\n  Optional,\n  SkipSelf\n} from '@angular/core';\n\nimport { ErrorInterceptor } from './error.interceptor';\n\n@NgModule({\n  imports: [],\n  declarations: [],\n  exports: []\n})\nexport class IgoErrorModule {\n  static forRoot(): ModuleWithProviders<IgoErrorModule> {\n    return {\n      ngModule: IgoErrorModule,\n      providers: [\n        {\n          provide: HTTP_INTERCEPTORS,\n          useClass: ErrorInterceptor,\n          multi: true\n        }\n      ]\n    };\n  }\n\n  constructor(@Optional() @SkipSelf() parentModule: IgoErrorModule) {\n    if (parentModule) {\n      throw new Error(\n        'IgoErrorModule is already loaded. Import it in the AppModule only'\n      );\n    }\n  }\n}\n","import {\n  HttpEvent,\n  HttpHandler,\n  HttpInterceptor,\n  HttpRequest,\n  HttpResponse\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\nimport { finalize, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class LoggingInterceptor implements HttpInterceptor {\n  intercept(\n    req: HttpRequest<any>,\n    next: HttpHandler\n  ): Observable<HttpEvent<any>> {\n    const started = Date.now();\n    let ok: string;\n\n    // extend server response observable with logging\n    return next.handle(req).pipe(\n      tap(\n        // Succeeds when there is a response; ignore other events\n        (event) => (ok = event instanceof HttpResponse ? 'succeeded' : ''),\n        // Operation failed; error is an HttpErrorResponse\n        () => (ok = 'failed')\n      ),\n      // Log when response observable either completes or errors\n      finalize(() => {\n        const elapsed = Date.now() - started;\n        const msg = `${req.method} \"${req.urlWithParams}\"\n             ${ok} in ${elapsed} ms.`;\n\n        console.log(msg);\n      })\n    );\n  }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { LoggingInterceptor } from './logging.interceptor';\n\n@NgModule({\n  imports: [],\n  declarations: [],\n  exports: []\n})\nexport class IgoLoggingModule {\n  static forRoot(): ModuleWithProviders<IgoLoggingModule> {\n    return {\n      ngModule: IgoLoggingModule,\n      providers: [\n        {\n          provide: HTTP_INTERCEPTORS,\n          useClass: LoggingInterceptor,\n          multi: true\n        }\n      ]\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}