UNPKG

@angular/fire

Version:

The official library for Firebase and Angular

71 lines 5.17 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { ApplicationRef, Injectable } from '@angular/core'; import { first, tap } from 'rxjs/operators'; import * as i0 from "@angular/core"; /** @type {?} */ const IS_STABLE_START_MARK = '_isStableStart'; /** @type {?} */ const IS_STABLE_END_MARK = '_isStableEnd'; /** * @return {?} */ function markStarts() { if (typeof (window) !== 'undefined' && window.performance) { window.performance.mark(IS_STABLE_START_MARK); return true; } else { return false; } } /** @type {?} */ const started = markStarts(); export class PerformanceMonitoringService { /** * @param {?} appRef */ constructor(appRef) { if (started) { this.disposable = appRef.isStable.pipe(first((/** * @param {?} it * @return {?} */ it => it)), tap((/** * @return {?} */ () => { window.performance.mark(IS_STABLE_END_MARK); window.performance.measure('isStable', IS_STABLE_START_MARK, IS_STABLE_END_MARK); }))).subscribe(); } } /** * @return {?} */ ngOnDestroy() { if (this.disposable) { this.disposable.unsubscribe(); } } } PerformanceMonitoringService.decorators = [ { type: Injectable, args: [{ providedIn: 'any' },] } ]; /** @nocollapse */ PerformanceMonitoringService.ctorParameters = () => [ { type: ApplicationRef } ]; /** @nocollapse */ PerformanceMonitoringService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PerformanceMonitoringService_Factory() { return new PerformanceMonitoringService(i0.ɵɵinject(i0.ApplicationRef)); }, token: PerformanceMonitoringService, providedIn: "any" }); if (false) { /** * @type {?} * @private */ PerformanceMonitoringService.prototype.disposable; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wZXJmb3JtYW5jZS9wZXJmb3JtYW5jZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7TUFFdEMsb0JBQW9CLEdBQUcsZ0JBQWdCOztNQUN2QyxrQkFBa0IsR0FBRyxjQUFjOzs7O0FBRXpDLFNBQVMsVUFBVTtJQUNmLElBQUksT0FBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO1FBQ3RELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7S0FDZjtTQUFNO1FBQ0gsT0FBTyxLQUFLLENBQUM7S0FDaEI7QUFDTCxDQUFDOztNQUVLLE9BQU8sR0FBRyxVQUFVLEVBQUU7QUFLNUIsTUFBTSxPQUFPLDRCQUE0Qjs7OztJQUlyQyxZQUFZLE1BQXNCO1FBQzlCLElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEMsS0FBSzs7OztZQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFDLEVBQ2YsR0FBRzs7O1lBQUMsR0FBRyxFQUFFO2dCQUNMLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3JGLENBQUMsRUFBQyxDQUNMLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDakI7SUFDTCxDQUFDOzs7O0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7U0FBRTtJQUMzRCxDQUFDOzs7WUFyQkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxLQUFLO2FBQ3BCOzs7O1lBcEJRLGNBQWM7Ozs7Ozs7O0lBdUJuQixrREFBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IElTX1NUQUJMRV9TVEFSVF9NQVJLID0gJ19pc1N0YWJsZVN0YXJ0JztcbmNvbnN0IElTX1NUQUJMRV9FTkRfTUFSSyA9ICdfaXNTdGFibGVFbmQnO1xuXG5mdW5jdGlvbiBtYXJrU3RhcnRzKCkge1xuICAgIGlmICh0eXBlb2Yod2luZG93KSAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LnBlcmZvcm1hbmNlKSB7XG4gICAgICAgIHdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrKElTX1NUQUJMRV9TVEFSVF9NQVJLKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuY29uc3Qgc3RhcnRlZCA9IG1hcmtTdGFydHMoKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdhbnknXG59KVxuZXhwb3J0IGNsYXNzIFBlcmZvcm1hbmNlTW9uaXRvcmluZ1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSBkaXNwb3NhYmxlOiBTdWJzY3JpcHRpb258dW5kZWZpbmVkO1xuXG4gICAgY29uc3RydWN0b3IoYXBwUmVmOiBBcHBsaWNhdGlvblJlZikge1xuICAgICAgICBpZiAoc3RhcnRlZCkge1xuICAgICAgICAgICAgdGhpcy5kaXNwb3NhYmxlID0gYXBwUmVmLmlzU3RhYmxlLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlyc3QoaXQgPT4gaXQpLFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5wZXJmb3JtYW5jZS5tYXJrKElTX1NUQUJMRV9FTkRfTUFSSyk7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5wZXJmb3JtYW5jZS5tZWFzdXJlKCdpc1N0YWJsZScsIElTX1NUQUJMRV9TVEFSVF9NQVJLLCBJU19TVEFCTEVfRU5EX01BUkspO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc3Bvc2FibGUpIHsgdGhpcy5kaXNwb3NhYmxlLnVuc3Vic2NyaWJlKCk7IH1cbiAgICB9XG5cbn1cbiJdfQ==