From 142d3ef543321e248fc085bd80a7c64c6092b033 Mon Sep 17 00:00:00 2001 From: RMidhunSuresh Date: Wed, 10 Nov 2021 13:45:37 +0530 Subject: [PATCH] Split LogItemValues into union of types --- src/logging/LogItem.ts | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/logging/LogItem.ts b/src/logging/LogItem.ts index a77b7c3d..a7f05768 100644 --- a/src/logging/LogItem.ts +++ b/src/logging/LogItem.ts @@ -18,7 +18,25 @@ limitations under the License. import {BaseLogger} from "./BaseLogger"; import {LogLevel, LogFilter} from "./LogFilter"; -type LogItemValues = {l: string; [key: string]: unknown}; +type LogItemWithLabel = { + l: string; + [key: string]: unknown; +}; + +type LogItemNetwork = { + t: "network"; + method: string; + url: string; + [key: string]: unknown; +} + +type LogItemRef = { + ref: number; + [key: string]: unknown; +} + +type LogItemValues = LogItemWithLabel | LogItemNetwork | LogItemRef; + export type LabelOrValues = string | LogItemValues; export type FilterCreator = ((filter: LogFilter, item: LogItem) => LogFilter) | null; export type LogCallback = (item: LogItem) => Promise | undefined; @@ -59,7 +77,7 @@ export class LogItem { This is useful if the referenced operation can't be awaited. */ refDetached(logItem: LogItem, logLevel: LogLevel | null = null) { logItem.ensureRefId(); - return this.log({ref: logItem._values.refId}, logLevel); + return this.log({ref: logItem._values.refId as number}, logLevel); } ensureRefId() { @@ -114,7 +132,7 @@ export class LogItem { item.end = item.start; } - set(key, value) { + set(key: string | object, value: unknown) { if(typeof key === "object") { const values = key; Object.assign(this._values, values);