Merge pull request #17479 from ShirasawaSama/patch-8

feat: Dynamically load @azure/msal-browser to improve first-screen loading speed
This commit is contained in:
Tim Jaeryang Baek 2025-09-16 10:25:10 -05:00 committed by GitHub
commit 83699cf3ef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,5 +1,4 @@
import { PublicClientApplication } from '@azure/msal-browser'; import type { PopupRequest, PublicClientApplication } from '@azure/msal-browser';
import type { PopupRequest } from '@azure/msal-browser';
import { v4 as uuidv4 } from 'uuid'; import { v4 as uuidv4 } from 'uuid';
class OneDriveConfig { class OneDriveConfig {
@ -77,6 +76,7 @@ class OneDriveConfig {
} }
}; };
const { PublicClientApplication } = await import('@azure/msal-browser');
this.msalInstance = new PublicClientApplication(msalParams); this.msalInstance = new PublicClientApplication(msalParams);
if (this.msalInstance.initialize) { if (this.msalInstance.initialize) {
await this.msalInstance.initialize(); await this.msalInstance.initialize();
@ -136,7 +136,7 @@ async function getToken(
const msalInstance = await config.getMsalInstance(authorityType); const msalInstance = await config.getMsalInstance(authorityType);
const resp = await msalInstance.acquireTokenSilent(authParams); const resp = await msalInstance.acquireTokenSilent(authParams);
accessToken = resp.accessToken; accessToken = resp.accessToken;
} catch (err) { } catch {
const msalInstance = await config.getMsalInstance(authorityType); const msalInstance = await config.getMsalInstance(authorityType);
try { try {
const resp = await msalInstance.loginPopup(authParams); const resp = await msalInstance.loginPopup(authParams);
@ -179,6 +179,7 @@ interface PickerParams {
interface PickerResult { interface PickerResult {
command?: string; command?: string;
items?: OneDriveFileInfo[]; items?: OneDriveFileInfo[];
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[key: string]: any; [key: string]: any;
} }
@ -221,6 +222,7 @@ interface OneDriveFileInfo {
driveId: string; driveId: string;
}; };
'@sharePoint.endpoint': string; '@sharePoint.endpoint': string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[key: string]: any; [key: string]: any;
} }
@ -319,7 +321,7 @@ export async function openOneDrivePicker(
} else { } else {
throw new Error('Could not retrieve auth token'); throw new Error('Could not retrieve auth token');
} }
} catch (err) { } catch {
channelPort?.postMessage({ channelPort?.postMessage({
type: 'result', type: 'result',
id: portData.id, id: portData.id,