@igo2/core
Version:
94 lines (88 loc) • 3.76 kB
JavaScript
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