UNPKG

@igo2/core

Version:
94 lines (88 loc) 3.76 kB
import { HTTP_INTERCEPTORS } from '@angular/common/http'; import * as i0 from '@angular/core'; import { Injectable, NgModule } from '@angular/core'; import { finalize } from 'rxjs/operators'; import { uuid } from '@igo2/utils'; import { BehaviorSubject } from 'rxjs'; class ActivityService { counter$ = new BehaviorSubject(0); ids = []; register() { const id = uuid(); this.ids.push(id); this.counter$.next(this.ids.length); return id; } unregister(id) { const index = this.ids.indexOf(id); if (index === -1) { return; } this.ids.splice(index, 1); this.counter$.next(this.ids.length); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ActivityService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ActivityService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); class ActivityInterceptor { activityService; constructor(activityService) { this.activityService = activityService; } intercept(req, next) { const activity = req.headers.get('activityInterceptor'); if (activity) { const actReq = req.clone({ headers: req.headers.delete('activityInterceptor') }); if (activity === 'false') { return next.handle(actReq); } } const id = this.activityService.register(); return next.handle(req).pipe(finalize(() => { this.activityService.unregister(id); })); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ActivityInterceptor, deps: [{ token: ActivityService }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ActivityInterceptor }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ActivityInterceptor, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: ActivityService }] }); class IgoActivityModule { static forRoot() { return { ngModule: IgoActivityModule, providers: [ { provide: HTTP_INTERCEPTORS, useClass: ActivityInterceptor, multi: true } ] }; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoActivityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: IgoActivityModule }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoActivityModule }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: IgoActivityModule, decorators: [{ type: NgModule, args: [{ imports: [], declarations: [], exports: [] }] }] }); /** * Generated bundle index. Do not edit. */ export { ActivityInterceptor, ActivityService, IgoActivityModule }; //# sourceMappingURL=igo2-core-activity.mjs.map