From 07f5640d278e0fce22d56331fe2f82b82eeffd11 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Tue, 13 Sep 2022 09:51:00 -0700 Subject: [PATCH] Work around api-extractor import bug --- src/compiler/perfLogger.ts | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/compiler/perfLogger.ts b/src/compiler/perfLogger.ts index 34a59208d68f0..7e5f0899a973f 100644 --- a/src/compiler/perfLogger.ts +++ b/src/compiler/perfLogger.ts @@ -1,6 +1,38 @@ import { noop } from "./_namespaces/ts"; -type PerfLogger = typeof import("@microsoft/typescript-etw"); +/** @internal */ +interface PerfLogger { + logEvent(msg: string): void; + logErrEvent(msg: string): void; + logPerfEvent(msg: string): void; + logInfoEvent(msg: string): void; + logStartCommand(command: string, msg: string): void; + logStopCommand(command: string, msg: string): void; + logStartUpdateProgram(msg: string): void; + logStopUpdateProgram(msg: string): void; + logStartUpdateGraph(): void; + logStopUpdateGraph(): void; + logStartResolveModule(name: string): void; + logStopResolveModule(success: string): void; + logStartParseSourceFile(filename: string): void; + logStopParseSourceFile(): void; + logStartReadFile(filename: string): void; + logStopReadFile(): void; + logStartBindFile(filename: string): void; + logStopBindFile(): void; + logStartScheduledOperation(operationId: string): void; + logStopScheduledOperation(): void; +} + +type ImportedPerfLogger = typeof import("@microsoft/typescript-etw"); + +// Assert that our PerfLogger type is the same as the import. +// TODO(jakebailey): remove this workaround for an api-extractor bug. +const _perfLoggerCorrectType: PerfLogger extends ImportedPerfLogger ? ImportedPerfLogger extends PerfLogger ? true : false : false = true; + +// eslint-disable-next-line @typescript-eslint/no-unused-expressions +_perfLoggerCorrectType; + const nullLogger: PerfLogger = { logEvent: noop, logErrEvent: noop,