Skip to content

Commit 23e2f1e

Browse files
chore(lint): Clean up analytics
1 parent d76c4a7 commit 23e2f1e

File tree

3 files changed

+50
-28
lines changed

3 files changed

+50
-28
lines changed

src/analytics/analytics.service.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ export class ScreenTrackingService implements OnDestroy {
8585
return of({ ...params, [SCREEN_CLASS_KEY]: componentFactory.selector });
8686
} else if (loadChildren) {
8787
const loadedChildren = loadChildren();
88-
const loadedChildren$: Observable<any> = (loadedChildren instanceof Observable) ? loadedChildren : from(Promise.resolve(loadedChildren));
88+
const loadedChildren$: Observable<any> = (loadedChildren instanceof Observable) ?
89+
loadedChildren :
90+
from(Promise.resolve(loadedChildren));
8991
return loadedChildren$.pipe(
9092
map(lazyModule => {
9193
if (lazyModule instanceof NgModuleFactory) {
@@ -95,7 +97,7 @@ export class ScreenTrackingService implements OnDestroy {
9597
const routes = moduleRef.injector.get(ROUTES);
9698
const component = routes[0][0].component; // should i just be grabbing 0-0 here?
9799
try {
98-
const componentFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(component!);
100+
const componentFactory = moduleRef.componentFactoryResolver.resolveComponentFactory(component);
99101
return { ...params, [SCREEN_CLASS_KEY]: componentFactory.selector };
100102
} catch (_) {
101103
return { ...params, [SCREEN_CLASS_KEY]: DEFAULT_SCREEN_CLASS };
@@ -140,8 +142,9 @@ export class ScreenTrackingService implements OnDestroy {
140142
[FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY],
141143
[FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY],
142144
[FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY],
143-
...current!
144-
} : current!),
145+
...current
146+
} : current),
147+
// tslint:disable-next-line:no-console
145148
tap(params => debugModeEnabled && console.info(SCREEN_VIEW_EVENT, params)),
146149
tap(params => zone.runOutsideAngular(() => analytics.logEvent(SCREEN_VIEW_EVENT, params)))
147150
).subscribe();
@@ -167,6 +170,7 @@ export class UserTrackingService implements OnDestroy {
167170
constructor(
168171
analytics: AngularFireAnalytics,
169172
zone: NgZone,
173+
// tslint:disable-next-line:ban-types
170174
@Inject(PLATFORM_ID) platformId: Object
171175
) {
172176
const schedulers = new ɵAngularFireSchedulers(zone);
@@ -179,7 +183,7 @@ export class UserTrackingService implements OnDestroy {
179183
switchMap(() => analytics.app),
180184
map(app => app.auth()),
181185
switchMap(auth => new Observable<User | null>(auth.onAuthStateChanged.bind(auth))),
182-
switchMap(user => analytics.setUserId(user ? user.uid : null!))
186+
switchMap(user => analytics.setUserId(user ? user.uid : null))
183187
).subscribe();
184188
});
185189
}

src/analytics/analytics.spec.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { inject, TestBed } from '@angular/core/testing';
1+
import { TestBed } from '@angular/core/testing';
22
import { AngularFireModule, FirebaseApp } from '@angular/fire';
33
import { AngularFireAnalytics, AngularFireAnalyticsModule } from './public_api';
44
import { COMMON_CONFIG } from '../test-config';
@@ -16,10 +16,9 @@ describe('AngularFireAnalytics', () => {
1616
AngularFireAnalyticsModule
1717
]
1818
});
19-
inject([FirebaseApp, AngularFireAnalytics], (app_: FirebaseApp, _analytics: AngularFireAnalytics) => {
20-
app = app_;
21-
analytics = _analytics;
22-
})();
19+
20+
app = TestBed.inject(FirebaseApp);
21+
analytics = TestBed.inject(AngularFireAnalytics);
2322
});
2423

2524
afterEach(() => {

src/analytics/analytics.ts

+37-18
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ import { map, observeOn, shareReplay, switchMap, tap } from 'rxjs/operators';
55
import { FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseAppConfig, FirebaseOptions, ɵAngularFireSchedulers, ɵfirebaseAppFactory, ɵlazySDKProxy, ɵPromiseProxy } from '@angular/fire';
66
import { analytics } from 'firebase';
77

8-
export interface Config {[key: string]: any; }
8+
export interface Config {
9+
[key: string]: any;
10+
}
911

1012
export const COLLECTION_ENABLED = new InjectionToken<boolean>('angularfire2.analytics.analyticsCollectionEnabled');
1113
export const APP_VERSION = new InjectionToken<string>('angularfire2.analytics.appVersion');
@@ -21,11 +23,12 @@ const GTAG_CONFIG_COMMAND = 'config';
2123
const GTAG_FUNCTION_NAME = 'gtag';
2224
const DATA_LAYER_NAME = 'dataLayer';
2325

24-
export interface AngularFireAnalytics extends ɵPromiseProxy<analytics.Analytics> {}
26+
export interface AngularFireAnalytics extends ɵPromiseProxy<analytics.Analytics> {
27+
}
2528

2629
let gtag: (...args: any[]) => void;
2730
let analyticsInitialized: Promise<void>;
28-
const analyticsInstanceCache: {[key: string]: Observable<analytics.Analytics>} = {};
31+
const analyticsInstanceCache: { [key: string]: Observable<analytics.Analytics> } = {};
2932

3033
@Injectable({
3134
providedIn: 'any'
@@ -39,30 +42,36 @@ export class AngularFireAnalytics {
3942

4043
constructor(
4144
@Inject(FIREBASE_OPTIONS) private options: FirebaseOptions,
42-
@Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string|FirebaseAppConfig|null|undefined,
43-
@Optional() @Inject(COLLECTION_ENABLED) analyticsCollectionEnabled: boolean|null,
44-
@Optional() @Inject(APP_VERSION) providedAppVersion: string|null,
45-
@Optional() @Inject(APP_NAME) providedAppName: string|null,
46-
@Optional() @Inject(DEBUG_MODE) debugModeEnabled: boolean|null,
47-
@Optional() @Inject(CONFIG) providedConfig: Config|null,
45+
@Optional() @Inject(FIREBASE_APP_NAME) nameOrConfig: string | FirebaseAppConfig | null | undefined,
46+
@Optional() @Inject(COLLECTION_ENABLED) analyticsCollectionEnabled: boolean | null,
47+
@Optional() @Inject(APP_VERSION) providedAppVersion: string | null,
48+
@Optional() @Inject(APP_NAME) providedAppName: string | null,
49+
@Optional() @Inject(DEBUG_MODE) debugModeEnabled: boolean | null,
50+
@Optional() @Inject(CONFIG) providedConfig: Config | null,
51+
// tslint:disable-next-line:ban-types
4852
@Inject(PLATFORM_ID) platformId: Object,
4953
zone: NgZone
5054
) {
5155

5256
if (!analyticsInitialized) {
5357
if (isPlatformBrowser(platformId)) {
54-
gtag = window[GTAG_FUNCTION_NAME] || function() { window[DATA_LAYER_NAME].push(arguments); };
58+
gtag = window[GTAG_FUNCTION_NAME] || (() => {
59+
window[DATA_LAYER_NAME].push(arguments);
60+
});
5561
window[DATA_LAYER_NAME] = window[DATA_LAYER_NAME] || [];
5662
analyticsInitialized = zone.runOutsideAngular(() =>
5763
new Promise(resolve => {
5864
window[GTAG_FUNCTION_NAME] = (...args: any[]) => {
59-
if (args[0] == 'js') { resolve(); }
65+
if (args[0] === 'js') {
66+
resolve();
67+
}
6068
gtag(...args);
6169
};
6270
})
6371
);
6472
} else {
65-
gtag = () => {};
73+
gtag = () => {
74+
};
6675
analyticsInitialized = Promise.resolve();
6776
}
6877
}
@@ -75,17 +84,27 @@ export class AngularFireAnalytics {
7584
map(() => ɵfirebaseAppFactory(options, zone, nameOrConfig)),
7685
map(app => app.analytics()),
7786
tap(analytics => {
78-
if (analyticsCollectionEnabled === false) { analytics.setAnalyticsCollectionEnabled(false); }
87+
if (analyticsCollectionEnabled === false) {
88+
analytics.setAnalyticsCollectionEnabled(false);
89+
}
7990
}),
80-
shareReplay({ bufferSize: 1, refCount: false }),
91+
shareReplay({ bufferSize: 1, refCount: false })
8192
);
8293
analyticsInstanceCache[options[ANALYTICS_ID_FIELD]] = analytics;
8394
}
8495

85-
if (providedConfig) { this.updateConfig(providedConfig); }
86-
if (providedAppName) { this.updateConfig({ [APP_NAME_KEY]: providedAppName }); }
87-
if (providedAppVersion) { this.updateConfig({ [APP_VERSION_KEY]: providedAppVersion }); }
88-
if (debugModeEnabled) { this.updateConfig({ [DEBUG_MODE_KEY]: 1 }); }
96+
if (providedConfig) {
97+
this.updateConfig(providedConfig);
98+
}
99+
if (providedAppName) {
100+
this.updateConfig({ [APP_NAME_KEY]: providedAppName });
101+
}
102+
if (providedAppVersion) {
103+
this.updateConfig({ [APP_VERSION_KEY]: providedAppVersion });
104+
}
105+
if (debugModeEnabled) {
106+
this.updateConfig({ [DEBUG_MODE_KEY]: 1 });
107+
}
89108

90109
return ɵlazySDKProxy(this, analytics, zone);
91110

0 commit comments

Comments
 (0)