UNPKG

ngx-rxjs-zone-scheduler

Version:

https://github.com/ftischler/ngx-rxjs-zone-scheduler/blob/main/libs/ngx-rxjs-zone-scheduler/README.md

84 lines (78 loc) 3.44 kB
import * as i0 from '@angular/core'; import { NgZone, Injectable, NgModule, makeEnvironmentProviders } from '@angular/core'; import { asyncScheduler } from 'rxjs'; import { observeOn, subscribeOn } from 'rxjs/operators'; class ZoneScheduler { constructor(ngZone, scheduler) { this.ngZone = ngZone; this.scheduler = scheduler; } now() { return this.scheduler.now(); } } class LeaveZoneScheduler extends ZoneScheduler { schedule(...args) { return this.ngZone.runOutsideAngular(() => { return this.scheduler.schedule(...args); }); } } class EnterZoneScheduler extends ZoneScheduler { schedule(...args) { return NgZone.isInAngularZone() ? this.scheduler.schedule(...args) : this.ngZone.run(() => this.scheduler.schedule(...args)); } } function enterNgZone(ngZone, scheduler = asyncScheduler) { return new EnterZoneScheduler(ngZone, scheduler); } function leaveNgZone(ngZone, scheduler = asyncScheduler) { return new LeaveZoneScheduler(ngZone, scheduler); } class RxNgZoneScheduler { constructor(ngZone) { this.ngZone = ngZone; } observeOnNgZone(scheduler) { return observeOn(this.enterNgZone(scheduler)); } observeOutOfNgZone(scheduler) { return observeOn(this.leaveNgZone(scheduler)); } subscribeOnNgZone(scheduler) { return subscribeOn(this.enterNgZone(scheduler)); } subscribeOutOfNgZone(scheduler) { return subscribeOn(this.leaveNgZone(scheduler)); } enterNgZone(scheduler = asyncScheduler) { return enterNgZone(this.ngZone, scheduler); } leaveNgZone(scheduler = asyncScheduler) { return leaveNgZone(this.ngZone, scheduler); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RxNgZoneScheduler, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RxNgZoneScheduler }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RxNgZoneScheduler, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i0.NgZone }] }); class RxNgZoneSchedulerModule { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RxNgZoneSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: RxNgZoneSchedulerModule }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RxNgZoneSchedulerModule, providers: [RxNgZoneScheduler] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: RxNgZoneSchedulerModule, decorators: [{ type: NgModule, args: [{ providers: [RxNgZoneScheduler], }] }] }); const provideRxNgZoneScheduler = () => makeEnvironmentProviders([RxNgZoneScheduler]); /** * Generated bundle index. Do not edit. */ export { RxNgZoneScheduler, RxNgZoneSchedulerModule, enterNgZone, leaveNgZone, provideRxNgZoneScheduler }; //# sourceMappingURL=ngx-rxjs-zone-scheduler.mjs.map