UNPKG

12.9 kBSource Map (JSON)View Raw
1{"version":3,"file":"angular-fire-compat-performance.umd.js","sources":["../../../src/compat/performance/base.ts","../../../src/compat/performance/performance.ts","../../../src/compat/performance/performance.service.ts","../../../src/compat/performance/performance.module.ts","../../../src/compat/performance/angular-fire-compat-performance.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/performance, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n app: null,\n trace: null,\n instrumentationEnabled: null,\n dataCollectionEnabled: null,\n};\n","import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { EMPTY, Observable, of, Subscription } from 'rxjs';\nimport { map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport firebase from 'firebase/compat/app';\nimport { ɵapplyMixins, ɵlazySDKProxy, ɵPromiseProxy, ɵcacheInstance } from '@angular/fire/compat';\nimport { FirebaseApp } from '@angular/fire/compat';\nimport { isPlatformBrowser } from '@angular/common';\nimport { proxyPolyfillCompat } from './base';\n\nexport const INSTRUMENTATION_ENABLED = new InjectionToken<boolean>('angularfire2.performance.instrumentationEnabled');\nexport const DATA_COLLECTION_ENABLED = new InjectionToken<boolean>('angularfire2.performance.dataCollectionEnabled');\n\nexport interface AngularFirePerformance extends ɵPromiseProxy<firebase.performance.Performance> {\n}\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFirePerformance {\n\n private readonly performance: Observable<firebase.performance.Performance>;\n\n constructor(\n app: FirebaseApp,\n @Optional() @Inject(INSTRUMENTATION_ENABLED) instrumentationEnabled: boolean | null,\n @Optional() @Inject(DATA_COLLECTION_ENABLED) dataCollectionEnabled: boolean | null,\n private zone: NgZone,\n // tslint:disable-next-line:ban-types\n @Inject(PLATFORM_ID) platformId: Object\n ) {\n\n this.performance = of(undefined).pipe(\n switchMap(() => isPlatformBrowser(platformId) ? zone.runOutsideAngular(() => import('firebase/compat/performance')) : EMPTY),\n map(() => ɵcacheInstance(`performance`, 'AngularFirePerformance', app.name, () => {\n const performance = zone.runOutsideAngular(() => app.performance());\n if (instrumentationEnabled === false) {\n performance.instrumentationEnabled = false;\n }\n if (dataCollectionEnabled === false) {\n performance.dataCollectionEnabled = false;\n }\n return performance;\n }, [instrumentationEnabled, dataCollectionEnabled])),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n return ɵlazySDKProxy(this, this.performance, zone);\n\n }\n\n}\n\nconst trace$ = (traceId: string) => {\n if (typeof window !== 'undefined' && window.performance?.mark) {\n const entries = window.performance.getEntriesByName(traceId, 'measure') || [];\n const startMarkName = `_${traceId}Start[${entries.length}]`;\n const endMarkName = `_${traceId}End[${entries.length}]`;\n return new Observable<void>(emitter => {\n window.performance.mark(startMarkName);\n emitter.next();\n return {\n unsubscribe: () => {\n window.performance.mark(endMarkName);\n window.performance.measure(traceId, startMarkName, endMarkName);\n }\n };\n });\n } else {\n return EMPTY;\n }\n};\n\nexport const traceUntil = <T = any>(\n name: string,\n test: (a: T) => boolean,\n options?: { orComplete?: boolean }\n) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n a => test(a) && traceSubscription.unsubscribe(),\n () => {\n },\n () => options && options.orComplete && traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceWhile = <T = any>(\n name: string,\n test: (a: T) => boolean,\n options?: { orComplete?: boolean }\n) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n let traceSubscription: Subscription | undefined;\n return source$.pipe(\n tap(\n a => {\n if (test(a)) {\n traceSubscription = traceSubscription || trace$(name).subscribe();\n } else {\n if (traceSubscription) {\n traceSubscription.unsubscribe();\n }\n\n traceSubscription = undefined;\n }\n },\n () => {\n },\n () => options && options.orComplete && traceSubscription && traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceUntilComplete = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => {\n },\n () => {\n },\n () => traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceUntilFirst = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => traceSubscription.unsubscribe(),\n () => {\n },\n () => {\n }\n )\n ).subscribe(subscriber);\n});\n\nexport const trace = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => traceSubscription.unsubscribe(),\n () => {\n },\n () => traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nɵapplyMixins(AngularFirePerformance, [proxyPolyfillCompat]);\n","import { ApplicationRef, Injectable, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\n\nconst IS_STABLE_START_MARK = 'Zone';\nconst IS_STABLE_END_MARK = '_isStableEnd';\n\n@Injectable()\nexport class PerformanceMonitoringService implements OnDestroy {\n\n private disposable: Subscription|undefined;\n\n constructor(appRef: ApplicationRef) {\n if (typeof window !== 'undefined' && window.performance?.mark) {\n this.disposable = appRef.isStable.pipe(\n first(it => it),\n tap(() => {\n window.performance.mark(IS_STABLE_END_MARK);\n window.performance.measure('isStable', IS_STABLE_START_MARK, IS_STABLE_END_MARK);\n })\n ).subscribe();\n }\n }\n\n ngOnDestroy() {\n if (this.disposable) { this.disposable.unsubscribe(); }\n }\n\n}\n","import { NgModule, Optional } from '@angular/core';\nimport { AngularFirePerformance } from './performance';\nimport { PerformanceMonitoringService } from './performance.service';\nimport firebase from 'firebase/compat/app';\nimport { VERSION } from '@angular/fire';\n\n@NgModule({\n providers: [ AngularFirePerformance ]\n})\nexport class AngularFirePerformanceModule {\n constructor(\n perf: AngularFirePerformance,\n @Optional() _: PerformanceMonitoringService\n ) {\n firebase.registerVersion('angularfire', VERSION.full, 'perf-compat');\n // call anything here to get perf loading\n // tslint:disable-next-line:no-unused-expression\n perf.dataCollectionEnabled.then(() => {});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["InjectionToken","of","switchMap","isPlatformBrowser","EMPTY","map","ɵcacheInstance","shareReplay","ɵlazySDKProxy","PLATFORM_ID","Injectable","Optional","Inject","Observable","tap","ɵapplyMixins","first","firebase","VERSION","NgModule"],"mappings":"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"}
\No newline at end of file