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:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user