81 lines
9.4 KiB
JavaScript
81 lines
9.4 KiB
JavaScript
|
import { NgModule, Optional, NgZone, InjectionToken, PLATFORM_ID, Injector } from '@angular/core';
|
||
|
import { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';
|
||
|
import { Performance, PerformanceInstances, PERFORMANCE_PROVIDER_NAME } from './performance';
|
||
|
import { FirebaseApps, FirebaseApp } from '@angular/fire/app';
|
||
|
import { registerVersion } from 'firebase/app';
|
||
|
import { isPlatformBrowser } from '@angular/common';
|
||
|
import * as i0 from "@angular/core";
|
||
|
export const PROVIDED_PERFORMANCE_INSTANCES = new InjectionToken('angularfire2.performance-instances');
|
||
|
export function defaultPerformanceInstanceFactory(provided, defaultApp,
|
||
|
// tslint:disable-next-line:ban-types
|
||
|
platform) {
|
||
|
if (!isPlatformBrowser(platform)) {
|
||
|
return null;
|
||
|
}
|
||
|
const defaultPerformance = ɵgetDefaultInstanceOf(PERFORMANCE_PROVIDER_NAME, provided, defaultApp);
|
||
|
return defaultPerformance && new Performance(defaultPerformance);
|
||
|
}
|
||
|
export function performanceInstanceFactory(fn) {
|
||
|
// tslint:disable-next-line:ban-types
|
||
|
return (zone, platform, injector) => {
|
||
|
if (!isPlatformBrowser(platform)) {
|
||
|
return null;
|
||
|
}
|
||
|
const performance = zone.runOutsideAngular(() => fn(injector));
|
||
|
return new Performance(performance);
|
||
|
};
|
||
|
}
|
||
|
const PERFORMANCE_INSTANCES_PROVIDER = {
|
||
|
provide: PerformanceInstances,
|
||
|
deps: [
|
||
|
[new Optional(), PROVIDED_PERFORMANCE_INSTANCES],
|
||
|
]
|
||
|
};
|
||
|
const DEFAULT_PERFORMANCE_INSTANCE_PROVIDER = {
|
||
|
provide: Performance,
|
||
|
useFactory: defaultPerformanceInstanceFactory,
|
||
|
deps: [
|
||
|
[new Optional(), PROVIDED_PERFORMANCE_INSTANCES],
|
||
|
FirebaseApp,
|
||
|
PLATFORM_ID,
|
||
|
]
|
||
|
};
|
||
|
export class PerformanceModule {
|
||
|
constructor() {
|
||
|
registerVersion('angularfire', VERSION.full, 'perf');
|
||
|
}
|
||
|
}
|
||
|
PerformanceModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: PerformanceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
||
|
PerformanceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: PerformanceModule });
|
||
|
PerformanceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: PerformanceModule, providers: [
|
||
|
DEFAULT_PERFORMANCE_INSTANCE_PROVIDER,
|
||
|
PERFORMANCE_INSTANCES_PROVIDER,
|
||
|
] });
|
||
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: PerformanceModule, decorators: [{
|
||
|
type: NgModule,
|
||
|
args: [{
|
||
|
providers: [
|
||
|
DEFAULT_PERFORMANCE_INSTANCE_PROVIDER,
|
||
|
PERFORMANCE_INSTANCES_PROVIDER,
|
||
|
]
|
||
|
}]
|
||
|
}], ctorParameters: function () { return []; } });
|
||
|
export function providePerformance(fn, ...deps) {
|
||
|
return {
|
||
|
ngModule: PerformanceModule,
|
||
|
providers: [{
|
||
|
provide: PROVIDED_PERFORMANCE_INSTANCES,
|
||
|
useFactory: performanceInstanceFactory(fn),
|
||
|
multi: true,
|
||
|
deps: [
|
||
|
NgZone,
|
||
|
PLATFORM_ID,
|
||
|
Injector,
|
||
|
ɵAngularFireSchedulers,
|
||
|
FirebaseApps,
|
||
|
...deps,
|
||
|
]
|
||
|
}]
|
||
|
};
|
||
|
}
|
||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF1QixXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXBELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUFnQixvQ0FBb0MsQ0FBQyxDQUFDO0FBRXRILE1BQU0sVUFBVSxpQ0FBaUMsQ0FDL0MsUUFBeUMsRUFDekMsVUFBdUI7QUFDdkIscUNBQXFDO0FBQ3JDLFFBQWdCO0lBRWhCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDO0tBQUU7SUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBc0IseUJBQXlCLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZILE9BQU8sa0JBQWtCLElBQUksSUFBSSxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEVBQStDO0lBQ3hGLHFDQUFxQztJQUNyQyxPQUFPLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsUUFBa0IsRUFBRSxFQUFFO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixJQUFJLEVBQUU7UUFDSixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsOEJBQThCLENBQUU7S0FDbEQ7Q0FDRixDQUFDO0FBRUYsTUFBTSxxQ0FBcUMsR0FBRztJQUM1QyxPQUFPLEVBQUUsV0FBVztJQUNwQixVQUFVLEVBQUUsaUNBQWlDO0lBQzdDLElBQUksRUFBRTtRQUNKLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSw4QkFBOEIsQ0FBRTtRQUNqRCxXQUFXO1FBQ1gsV0FBVztLQUNaO0NBQ0YsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7UUFDRSxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7OEdBSFUsaUJBQWlCOytHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixhQUxqQjtRQUNULHFDQUFxQztRQUNyQyw4QkFBOEI7S0FDL0I7MkZBRVUsaUJBQWlCO2tCQU43QixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxxQ0FBcUM7d0JBQ3JDLDhCQUE4QjtxQkFDL0I7aUJBQ0Y7O0FBT0QsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxFQUErQyxFQUFFLEdBQUcsSUFBVztJQUUvRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsOEJBQThCO2dCQUN2QyxVQUFVLEVBQUUsMEJBQTBCLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUU7b0JBQ0osTUFBTTtvQkFDTixXQUFXO29CQUNYLFFBQVE7b0JBQ1Isc0JBQXNCO29CQUN0QixZQUFZO29CQUNaLEdBQUcsSUFBSTtpQkFDUjthQUNGLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBPcHRpb25hbCwgTmdab25lLCBJbmplY3Rpb25Ub2tlbiwgTW9kdWxlV2l0aFByb3ZpZGVycywgUExBVEZPUk1fSUQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXJlYmFzZVBlcmZvcm1hbmNlIH0gZnJvbSAnZmlyZWJhc2UvcGVyZm9ybWFuY2UnO1xuaW1wb3J0IHsgybVnZXREZWZhdWx0SW5zdGFuY2VPZiwgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsIFZFUlNJT04gfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IFBlcmZvcm1hbmNlLCBQZXJmb3JtYW5jZUluc3RhbmNlcywgUEVSRk9STUFOQ0VfUFJPVklERVJfTkFNRSB9IGZyb20gJy4vcGVyZm9ybWFuY2UnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBzLCBGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJztcbmltcG9ydCB7IHJlZ2lzdGVyVmVyc2lvbiB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFRF9QRVJGT1JNQU5DRV9JTlNUQU5DRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48UGVyZm9ybWFuY2VbXT4oJ2FuZ3VsYXJmaXJlMi5wZXJmb3JtYW5jZS1pbnN0YW5jZXMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQZXJmb3JtYW5jZUluc3RhbmNlRmFjdG9yeShcbiAgcHJvdmlkZWQ6IEZpcmViYXNlUGVyZm9ybWFuY2VbXXx1bmRlZmluZWQsXG4gIGRlZmF1bHRBcHA6IEZpcmViYXNlQXBwLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6YmFuLXR5cGVzXG4gIHBsYXRmb3JtOiBPYmplY3Rcbikge1xuICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtKSkgeyByZXR1cm4gbnVsbDsgfVxuICBjb25zdCBkZWZhdWx0UGVyZm9ybWFuY2UgPSDJtWdldERlZmF1bHRJbnN0YW5jZU9mPEZpcmViYXNlUGVyZm9ybWFuY2U+KFBFU
|