ngx-rxjs-zone-scheduler
Version:
https://github.com/ftischler/ngx-rxjs-zone-scheduler/blob/main/libs/ngx-rxjs-zone-scheduler/README.md
1 lines • 5.39 kB
Source Map (JSON)
{"version":3,"file":"ngx-rxjs-zone-scheduler.mjs","sources":["../../../../libs/ngx-rxjs-zone-scheduler/src/lib/rx-ng-zone-scheduler.ts","../../../../libs/ngx-rxjs-zone-scheduler/src/lib/rx-ng-zone-scheduler.module.ts","../../../../libs/ngx-rxjs-zone-scheduler/src/lib/providers.ts","../../../../libs/ngx-rxjs-zone-scheduler/src/ngx-rxjs-zone-scheduler.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n asyncScheduler,\n MonoTypeOperatorFunction,\n SchedulerLike,\n Subscription,\n} from 'rxjs';\nimport { observeOn, subscribeOn } from 'rxjs/operators';\n\ntype Work<T> = (state?: T) => void;\ntype Delay = number | undefined;\n\nabstract class ZoneScheduler implements SchedulerLike {\n constructor(protected ngZone: NgZone, protected scheduler: SchedulerLike) {}\n\n abstract schedule<T>(...args: [Work<T>, Delay, T]): Subscription;\n\n now(): number {\n return this.scheduler.now();\n }\n}\n\nclass LeaveZoneScheduler extends ZoneScheduler {\n override schedule<T>(...args: [Work<T>, Delay, T]): Subscription {\n return this.ngZone.runOutsideAngular(() => {\n return this.scheduler.schedule(...args);\n });\n }\n}\n\nclass EnterZoneScheduler extends ZoneScheduler {\n override schedule<T>(...args: [Work<T>, Delay, T]): Subscription {\n return NgZone.isInAngularZone()\n ? this.scheduler.schedule(...args)\n : this.ngZone.run(() => this.scheduler.schedule(...args));\n }\n}\n\nexport function enterNgZone(\n ngZone: NgZone,\n scheduler: SchedulerLike = asyncScheduler\n): SchedulerLike {\n return new EnterZoneScheduler(ngZone, scheduler);\n}\n\nexport function leaveNgZone(\n ngZone: NgZone,\n scheduler: SchedulerLike = asyncScheduler\n): SchedulerLike {\n return new LeaveZoneScheduler(ngZone, scheduler);\n}\n\n@Injectable()\nexport class RxNgZoneScheduler {\n constructor(private ngZone: NgZone) {}\n\n public observeOnNgZone<T>(\n scheduler?: SchedulerLike\n ): MonoTypeOperatorFunction<T> {\n return observeOn<T>(this.enterNgZone(scheduler));\n }\n\n public observeOutOfNgZone<T>(\n scheduler?: SchedulerLike\n ): MonoTypeOperatorFunction<T> {\n return observeOn<T>(this.leaveNgZone(scheduler));\n }\n\n public subscribeOnNgZone<T>(\n scheduler?: SchedulerLike\n ): MonoTypeOperatorFunction<T> {\n return subscribeOn<T>(this.enterNgZone(scheduler));\n }\n\n public subscribeOutOfNgZone<T>(\n scheduler?: SchedulerLike\n ): MonoTypeOperatorFunction<T> {\n return subscribeOn<T>(this.leaveNgZone(scheduler));\n }\n\n public enterNgZone(scheduler: SchedulerLike = asyncScheduler): SchedulerLike {\n return enterNgZone(this.ngZone, scheduler);\n }\n\n public leaveNgZone(scheduler: SchedulerLike = asyncScheduler): SchedulerLike {\n return leaveNgZone(this.ngZone, scheduler);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RxNgZoneScheduler } from './rx-ng-zone-scheduler';\n\n@NgModule({\n providers: [RxNgZoneScheduler],\n})\nexport class RxNgZoneSchedulerModule {}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { RxNgZoneScheduler } from './rx-ng-zone-scheduler';\n\nexport const provideRxNgZoneScheduler = () =>\n makeEnvironmentProviders([RxNgZoneScheduler]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}