File size: 787 Bytes
4e23b01 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | export type TelemetryPropertyValue = boolean | number | string | undefined | null;
export type TelemetryProperties = Readonly<Record<string, TelemetryPropertyValue>>;
export interface TelemetryContextPatch {
readonly sessionId?: string | null;
}
export interface TelemetryClient {
track(event: string, properties?: TelemetryProperties): void;
withContext?(patch: TelemetryContextPatch): TelemetryClient;
setContext?(patch: TelemetryContextPatch): void;
}
export const noopTelemetryClient: TelemetryClient = {
track: () => {},
withContext: () => noopTelemetryClient,
setContext: () => {},
};
export function withTelemetryContext(
telemetry: TelemetryClient,
patch: TelemetryContextPatch,
): TelemetryClient {
return telemetry.withContext?.(patch) ?? telemetry;
}
|