{"version":3,"file":"banana6boom-ngx-ssr-timeout.mjs","sources":["../../../../../libs/banana6boom-ngx-ssr/timeout/src/lib/timeout.interceptor.ts","../../../../../libs/banana6boom-ngx-ssr/timeout/src/lib/ngx-ssr-timeout.module.ts","../../../../../libs/banana6boom-ngx-ssr/timeout/src/banana6boom-ngx-ssr-timeout.ts"],"sourcesContent":["import { Inject, Injectable, InjectionToken } from '@angular/core';\r\nimport {\r\n  HttpErrorResponse,\r\n  HttpEvent,\r\n  HttpEventType,\r\n  HttpHandler,\r\n  HttpInterceptor,\r\n  HttpRequest,\r\n} from '@angular/common/http';\r\nimport { NEVER, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, startWith, switchMap, timeout } from 'rxjs/operators';\r\n\r\nexport interface TimeoutOptions {\r\n  timeout: number;\r\n}\r\n\r\nexport const TIMEOUT_OPTIONS = new InjectionToken<TimeoutOptions>(\r\n  'Timeout Options',\r\n  {\r\n    factory() {\r\n      return { timeout: null };\r\n    },\r\n  }\r\n);\r\n\r\n@Injectable()\r\nexport class TimeoutInterceptor implements HttpInterceptor {\r\n  constructor(\r\n    @Inject(TIMEOUT_OPTIONS) private timeoutOptions: TimeoutOptions\r\n  ) {}\r\n\r\n  intercept(\r\n    request: HttpRequest<unknown>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<unknown>> {\r\n    return next.handle(request).pipe(\r\n      switchMap((event) => {\r\n        if (event.type === HttpEventType.Sent && this.timeoutOptions.timeout) {\r\n          return NEVER.pipe(\r\n            startWith(event),\r\n            timeout(this.timeoutOptions.timeout)\r\n          );\r\n        }\r\n\r\n        return of(event);\r\n      }),\r\n      catchError((error) => {\r\n        if (error && error.name === 'TimeoutError') {\r\n          return throwError(\r\n            new HttpErrorResponse({ error, url: request.urlWithParams })\r\n          );\r\n        }\r\n\r\n        return throwError(error);\r\n      })\r\n    );\r\n  }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport {\r\n  TIMEOUT_OPTIONS,\r\n  TimeoutInterceptor,\r\n  TimeoutOptions,\r\n} from './timeout.interceptor';\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n})\r\nexport class NgxSsrTimeoutModule {\r\n  static forRoot(\r\n    options?: TimeoutOptions\r\n  ): ModuleWithProviders<NgxSsrTimeoutModule> {\r\n    return {\r\n      ngModule: NgxSsrTimeoutModule,\r\n      providers: [\r\n        {\r\n          provide: HTTP_INTERCEPTORS,\r\n          useClass: TimeoutInterceptor,\r\n          multi: true,\r\n        },\r\n        options\r\n          ? {\r\n              provide: TIMEOUT_OPTIONS,\r\n              useValue: options,\r\n            }\r\n          : [],\r\n      ],\r\n    };\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAgBa,eAAe,GAAG,IAAI,cAAc,CAC/C,iBAAiB,EACjB;IACE,OAAO,GAAA;AACL,QAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC1B;AACF,CAAA,EACD;MAGW,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CACmC,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAC7D;IAEJ,SAAS,CACP,OAA6B,EAC7B,IAAiB,EAAA;AAEjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,SAAS,CAAC,CAAC,KAAK,KAAI;AAClB,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACpE,gBAAA,OAAO,KAAK,CAAC,IAAI,CACf,SAAS,CAAC,KAAK,CAAC,EAChB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CACrC,CAAC;AACH,aAAA;AAED,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACnB,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE;AAC1C,gBAAA,OAAO,UAAU,CACf,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAC7D,CAAC;AACH,aAAA;AAED,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;SAC1B,CAAC,CACH,CAAC;KACH;;AA9BU,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAEnB,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAFd,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;0BAGN,MAAM;2BAAC,eAAe,CAAA;;;MChBd,mBAAmB,CAAA;IAC9B,OAAO,OAAO,CACZ,OAAwB,EAAA;QAExB,OAAO;AACL,YAAA,QAAQ,EAAE,mBAAmB;AAC7B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;gBACD,OAAO;AACL,sBAAE;AACE,wBAAA,OAAO,EAAE,eAAe;AACxB,wBAAA,QAAQ,EAAE,OAAO;AAClB,qBAAA;AACH,sBAAE,EAAE;AACP,aAAA;SACF,CAAC;KACH;;gHApBU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAFpB,YAAY,CAAA,EAAA,CAAA,CAAA;AAEX,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAFpB,YAAY,CAAA,EAAA,CAAA,CAAA;2FAEX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}