From 87ea2d320b63b6ff99cdda3f539c56e027408fd4 Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 19 Dec 2019 12:29:18 -0800 Subject: [PATCH 1/7] Remove Logger from perf CC use case --- .../performance/src/services/cc_service.test.ts | 7 ++----- packages/performance/src/services/cc_service.ts | 9 ++++----- .../performance/src/services/perf_logger.test.ts | 5 ++--- packages/performance/src/services/perf_logger.ts | 16 ++++++++++------ 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/packages/performance/src/services/cc_service.test.ts b/packages/performance/src/services/cc_service.test.ts index f83af313c50..f874ef1e570 100644 --- a/packages/performance/src/services/cc_service.test.ts +++ b/packages/performance/src/services/cc_service.test.ts @@ -17,7 +17,6 @@ import { stub, useFakeTimers, SinonStub } from 'sinon'; import { use, expect } from 'chai'; -import { Logger, LogLevel } from '@firebase/logger'; import * as sinonChai from 'sinon-chai'; use(sinonChai); @@ -50,9 +49,8 @@ describe('Firebase Performance > cc_service', () => { }); it('throws an error when logging an empty message', () => { - const logger = new Logger('@firebase/performance/cc'); expect(() => { - testCCHandler(logger, LogLevel.SILENT, ''); + testCCHandler(''); }).to.throw; }); @@ -69,7 +67,6 @@ describe('Firebase Performance > cc_service', () => { }); it('attempts to log an event to clearcut after DEFAULT_SEND_INTERVAL_MS if queue not empty', () => { - const logger = new Logger('@firebase/performance/cc'); fetchStub.resolves( new Response('', { @@ -78,7 +75,7 @@ describe('Firebase Performance > cc_service', () => { }) ); - testCCHandler(logger, LogLevel.SILENT, 'someEvent'); + testCCHandler('someEvent'); clock.tick(DEFAULT_SEND_INTERVAL_MS); expect(fetchStub).to.have.been.calledOnce; }); diff --git a/packages/performance/src/services/cc_service.ts b/packages/performance/src/services/cc_service.ts index c036c0ee32b..eddc207ebcd 100644 --- a/packages/performance/src/services/cc_service.ts +++ b/packages/performance/src/services/cc_service.ts @@ -15,7 +15,6 @@ * limitations under the License. */ -import { LogHandler, Logger, LogLevel } from '@firebase/logger'; import { SettingsService } from './settings_service'; import { ERROR_FACTORY, ErrorCode } from '../utils/errors'; import { consoleLogger } from '../utils/console_logger'; @@ -135,10 +134,10 @@ function addToQueue(evt: BatchEvent): void { export function ccHandler( // eslint-disable-next-line @typescript-eslint/no-explicit-any serializer: (...args: any[]) => string -): LogHandler { - // The underscores for loggerInstance and level parameters are added to avoid the - // noUnusedParameters related error. - return (_loggerInstance: Logger, _level: LogLevel, ...args) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any +): (...args: any[]) => void { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return (...args) => { const message = serializer(...args); addToQueue({ message, diff --git a/packages/performance/src/services/perf_logger.test.ts b/packages/performance/src/services/perf_logger.test.ts index a7bdf91f3ad..d60fa0e4e22 100644 --- a/packages/performance/src/services/perf_logger.test.ts +++ b/packages/performance/src/services/perf_logger.test.ts @@ -17,7 +17,6 @@ import { stub, SinonStub, useFakeTimers, SinonFakeTimers } from 'sinon'; import { Trace } from '../resources/trace'; -import { LogHandler, Logger, LogLevel } from '@firebase/logger'; import * as ccService from './cc_service'; import * as iidService from './iid_service'; import { expect } from 'chai'; @@ -49,8 +48,8 @@ describe('Performance Monitoring > perf_logger', () => { let getIidStub: SinonStub<[], string | undefined>; let clock: SinonFakeTimers; - function mockCcHandler(serializer: (...args: any[]) => string): LogHandler { - return (_loggerInstance: Logger, _level: LogLevel, ...args) => { + function mockCcHandler(serializer: (...args: any[]) => string): (...args: any[]) => void { + return (...args) => { const message = serializer(...args); addToQueueStub({ message, diff --git a/packages/performance/src/services/perf_logger.ts b/packages/performance/src/services/perf_logger.ts index 9ccd118c32a..4860617f184 100644 --- a/packages/performance/src/services/perf_logger.ts +++ b/packages/performance/src/services/perf_logger.ts @@ -30,7 +30,6 @@ import { isPerfInitialized, getInitializationPromise } from './initialization_service'; -import { Logger } from '@firebase/logger'; import { ccHandler } from './cc_service'; import { SDK_VERSION } from '../constants'; @@ -83,17 +82,22 @@ interface TraceMetric { counters?: Array<{ key: string; value: number }>; custom_attributes?: Array<{ key: string; value: string }>; } + +interface CCLogger { + log: (...args: unknown[]) => void +} + /* eslint-enble camelcase */ -let logger: Logger | undefined; +let logger: CCLogger | undefined; // This method is not called before initialization. -function getLogger(): Logger { +function getLogger(): CCLogger { if (logger) { return logger; } - const ccLogger = ccHandler(serializer); - logger = new Logger('@firebase/performance/cc'); - logger.logHandler = ccLogger; + logger = { + log: ccHandler(serializer) + }; return logger; } From e994ebc58f667ca8bbb1c21b8aed3acb41d309eb Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 19 Dec 2019 12:50:37 -0800 Subject: [PATCH 2/7] Streamline it a bit --- .../performance/src/services/cc_service.ts | 1 - .../performance/src/services/perf_logger.ts | 23 ++++++++----------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/packages/performance/src/services/cc_service.ts b/packages/performance/src/services/cc_service.ts index eddc207ebcd..55b052812dc 100644 --- a/packages/performance/src/services/cc_service.ts +++ b/packages/performance/src/services/cc_service.ts @@ -136,7 +136,6 @@ export function ccHandler( serializer: (...args: any[]) => string // eslint-disable-next-line @typescript-eslint/no-explicit-any ): (...args: any[]) => void { - // eslint-disable-next-line @typescript-eslint/no-explicit-any return (...args) => { const message = serializer(...args); addToQueue({ diff --git a/packages/performance/src/services/perf_logger.ts b/packages/performance/src/services/perf_logger.ts index 4860617f184..4522e6a6a42 100644 --- a/packages/performance/src/services/perf_logger.ts +++ b/packages/performance/src/services/perf_logger.ts @@ -83,22 +83,17 @@ interface TraceMetric { custom_attributes?: Array<{ key: string; value: string }>; } -interface CCLogger { - log: (...args: unknown[]) => void -} - /* eslint-enble camelcase */ -let logger: CCLogger | undefined; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +let logger: (...args: any[]) => void | undefined; // This method is not called before initialization. -function getLogger(): CCLogger { - if (logger) { - return logger; + // eslint-disable-next-line @typescript-eslint/no-explicit-any +function sendLog(...args: any[]): void { + if (!logger) { + logger = ccHandler(serializer); } - logger = { - log: ccHandler(serializer) - }; - return logger; + logger(...args); } export function logTrace(trace: Trace): void { @@ -141,7 +136,7 @@ export function logTrace(trace: Trace): void { function sendTraceLog(trace: Trace): void { if (getIid()) { - setTimeout(() => getLogger().log(trace, ResourceType.Trace), 0); + setTimeout(() => sendLog(trace, ResourceType.Trace), 0); } } @@ -164,7 +159,7 @@ export function logNetworkRequest(networkRequest: NetworkRequest): void { } setTimeout( - () => getLogger().log(networkRequest, ResourceType.NetworkRequest), + () => sendLog(networkRequest, ResourceType.NetworkRequest), 0 ); } From 66ba193fdd92c12f431646988b67b1443869f016 Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 19 Dec 2019 12:53:25 -0800 Subject: [PATCH 3/7] Tighten types a little --- packages/performance/src/services/perf_logger.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/performance/src/services/perf_logger.ts b/packages/performance/src/services/perf_logger.ts index 4522e6a6a42..58cf142ec95 100644 --- a/packages/performance/src/services/perf_logger.ts +++ b/packages/performance/src/services/perf_logger.ts @@ -86,14 +86,14 @@ interface TraceMetric { /* eslint-enble camelcase */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -let logger: (...args: any[]) => void | undefined; +let logger: (resource: {}, resourceType: ResourceType) => void | undefined; // This method is not called before initialization. // eslint-disable-next-line @typescript-eslint/no-explicit-any -function sendLog(...args: any[]): void { +function sendLog(resource: {}, resourceType: ResourceType): void { if (!logger) { logger = ccHandler(serializer); } - logger(...args); + logger(resource, resourceType); } export function logTrace(trace: Trace): void { From 61924aad8bdf62dc94ae77e0cb6d6c24d801e363 Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Thu, 19 Dec 2019 13:44:33 -0800 Subject: [PATCH 4/7] [AUTOMATED]: Prettier Code Styling --- packages/performance/src/services/cc_service.test.ts | 1 - packages/performance/src/services/perf_logger.test.ts | 4 +++- packages/performance/src/services/perf_logger.ts | 7 ++----- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/performance/src/services/cc_service.test.ts b/packages/performance/src/services/cc_service.test.ts index f874ef1e570..f1295966daa 100644 --- a/packages/performance/src/services/cc_service.test.ts +++ b/packages/performance/src/services/cc_service.test.ts @@ -67,7 +67,6 @@ describe('Firebase Performance > cc_service', () => { }); it('attempts to log an event to clearcut after DEFAULT_SEND_INTERVAL_MS if queue not empty', () => { - fetchStub.resolves( new Response('', { status: 200, diff --git a/packages/performance/src/services/perf_logger.test.ts b/packages/performance/src/services/perf_logger.test.ts index d60fa0e4e22..235a08ff429 100644 --- a/packages/performance/src/services/perf_logger.test.ts +++ b/packages/performance/src/services/perf_logger.test.ts @@ -48,7 +48,9 @@ describe('Performance Monitoring > perf_logger', () => { let getIidStub: SinonStub<[], string | undefined>; let clock: SinonFakeTimers; - function mockCcHandler(serializer: (...args: any[]) => string): (...args: any[]) => void { + function mockCcHandler( + serializer: (...args: any[]) => string + ): (...args: any[]) => void { return (...args) => { const message = serializer(...args); addToQueueStub({ diff --git a/packages/performance/src/services/perf_logger.ts b/packages/performance/src/services/perf_logger.ts index 58cf142ec95..563e9f28afe 100644 --- a/packages/performance/src/services/perf_logger.ts +++ b/packages/performance/src/services/perf_logger.ts @@ -88,7 +88,7 @@ interface TraceMetric { // eslint-disable-next-line @typescript-eslint/no-explicit-any let logger: (resource: {}, resourceType: ResourceType) => void | undefined; // This method is not called before initialization. - // eslint-disable-next-line @typescript-eslint/no-explicit-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any function sendLog(resource: {}, resourceType: ResourceType): void { if (!logger) { logger = ccHandler(serializer); @@ -158,10 +158,7 @@ export function logNetworkRequest(networkRequest: NetworkRequest): void { return; } - setTimeout( - () => sendLog(networkRequest, ResourceType.NetworkRequest), - 0 - ); + setTimeout(() => sendLog(networkRequest, ResourceType.NetworkRequest), 0); } function serializer(resource: {}, resourceType: ResourceType): string { From ff4023d856a087032f2e3857825d21a69ad60adf Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Fri, 20 Dec 2019 10:55:03 -0800 Subject: [PATCH 5/7] Address PR comments --- packages/performance/src/services/cc_service.ts | 3 +-- packages/performance/src/services/perf_logger.ts | 8 +++----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/performance/src/services/cc_service.ts b/packages/performance/src/services/cc_service.ts index 55b052812dc..c0ae75617b3 100644 --- a/packages/performance/src/services/cc_service.ts +++ b/packages/performance/src/services/cc_service.ts @@ -134,8 +134,7 @@ function addToQueue(evt: BatchEvent): void { export function ccHandler( // eslint-disable-next-line @typescript-eslint/no-explicit-any serializer: (...args: any[]) => string - // eslint-disable-next-line @typescript-eslint/no-explicit-any -): (...args: any[]) => void { +): (...args: unknown[]) => void { return (...args) => { const message = serializer(...args); addToQueue({ diff --git a/packages/performance/src/services/perf_logger.ts b/packages/performance/src/services/perf_logger.ts index 563e9f28afe..268d0725dc0 100644 --- a/packages/performance/src/services/perf_logger.ts +++ b/packages/performance/src/services/perf_logger.ts @@ -85,11 +85,9 @@ interface TraceMetric { /* eslint-enble camelcase */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -let logger: (resource: {}, resourceType: ResourceType) => void | undefined; +let logger: (resource: unknown, resourceType: ResourceType) => void | undefined; // This method is not called before initialization. -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function sendLog(resource: {}, resourceType: ResourceType): void { +function sendLog(resource: unknown, resourceType: ResourceType): void { if (!logger) { logger = ccHandler(serializer); } @@ -161,7 +159,7 @@ export function logNetworkRequest(networkRequest: NetworkRequest): void { setTimeout(() => sendLog(networkRequest, ResourceType.NetworkRequest), 0); } -function serializer(resource: {}, resourceType: ResourceType): string { +function serializer(resource: unknown, resourceType: ResourceType): string { if (resourceType === ResourceType.NetworkRequest) { return serializeNetworkRequest(resource as NetworkRequest); } From 9052f184b6f17be6e803e4b64e5e82b494b991dd Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Mon, 23 Dec 2019 10:17:04 -0800 Subject: [PATCH 6/7] Change resource type --- packages/performance/src/services/perf_logger.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/performance/src/services/perf_logger.ts b/packages/performance/src/services/perf_logger.ts index 268d0725dc0..7382b903244 100644 --- a/packages/performance/src/services/perf_logger.ts +++ b/packages/performance/src/services/perf_logger.ts @@ -85,9 +85,9 @@ interface TraceMetric { /* eslint-enble camelcase */ -let logger: (resource: unknown, resourceType: ResourceType) => void | undefined; +let logger: (resource: NetworkRequest | Trace, resourceType: ResourceType) => void | undefined; // This method is not called before initialization. -function sendLog(resource: unknown, resourceType: ResourceType): void { +function sendLog(resource: NetworkRequest | Trace, resourceType: ResourceType): void { if (!logger) { logger = ccHandler(serializer); } @@ -159,7 +159,7 @@ export function logNetworkRequest(networkRequest: NetworkRequest): void { setTimeout(() => sendLog(networkRequest, ResourceType.NetworkRequest), 0); } -function serializer(resource: unknown, resourceType: ResourceType): string { +function serializer(resource: NetworkRequest | Trace, resourceType: ResourceType): string { if (resourceType === ResourceType.NetworkRequest) { return serializeNetworkRequest(resource as NetworkRequest); } From d3bbc1d4940936746f4952948f4e5ea4136d9ccb Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Mon, 23 Dec 2019 10:17:11 -0800 Subject: [PATCH 7/7] [AUTOMATED]: Prettier Code Styling --- packages/performance/src/services/perf_logger.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/performance/src/services/perf_logger.ts b/packages/performance/src/services/perf_logger.ts index 7382b903244..d64da40c6c4 100644 --- a/packages/performance/src/services/perf_logger.ts +++ b/packages/performance/src/services/perf_logger.ts @@ -85,9 +85,15 @@ interface TraceMetric { /* eslint-enble camelcase */ -let logger: (resource: NetworkRequest | Trace, resourceType: ResourceType) => void | undefined; +let logger: ( + resource: NetworkRequest | Trace, + resourceType: ResourceType +) => void | undefined; // This method is not called before initialization. -function sendLog(resource: NetworkRequest | Trace, resourceType: ResourceType): void { +function sendLog( + resource: NetworkRequest | Trace, + resourceType: ResourceType +): void { if (!logger) { logger = ccHandler(serializer); } @@ -159,7 +165,10 @@ export function logNetworkRequest(networkRequest: NetworkRequest): void { setTimeout(() => sendLog(networkRequest, ResourceType.NetworkRequest), 0); } -function serializer(resource: NetworkRequest | Trace, resourceType: ResourceType): string { +function serializer( + resource: NetworkRequest | Trace, + resourceType: ResourceType +): string { if (resourceType === ResourceType.NetworkRequest) { return serializeNetworkRequest(resource as NetworkRequest); }