UNPKG

@azure/msal-browser

Version:
62 lines (54 loc) 1.77 kB
/* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ import { InProgressPerformanceEvent, Logger } from "@azure/msal-common/browser"; interface NetworkConnection { effectiveType?: string; rtt?: number; } /** * Get network information for telemetry purposes. This is only supported in Chromium-based browsers. * @returns Network connection information, or an empty object if not available. */ export function getNetworkInfo(): NetworkConnection { if (typeof window === "undefined" || !window.navigator) { return {}; } const connection: NetworkConnection | undefined = "connection" in window.navigator ? ( window.navigator as Navigator & { connection: NetworkConnection; } ).connection : undefined; return { effectiveType: connection?.effectiveType, rtt: connection?.rtt, }; } export function collectInstanceStats( currentClientId: string, performanceEvent: InProgressPerformanceEvent, logger: Logger, correlationId: string ): void { const frameInstances: string[] = // @ts-ignore window.msal?.clientIds || []; const msalInstanceCount = frameInstances.length; const sameClientIdInstanceCount = frameInstances.filter( (i) => i === currentClientId ).length; if (sameClientIdInstanceCount > 1) { logger.warning( "There is already an instance of MSAL.js in the window with the same client id.", correlationId ); } performanceEvent.add({ msalInstanceCount: msalInstanceCount, sameClientIdInstanceCount: sameClientIdInstanceCount, }); }