34 lines
1022 B
TypeScript
34 lines
1022 B
TypeScript
import type { MSTeamsAdapter } from "./messenger.js";
|
|
import type { MSTeamsCredentials } from "./token.js";
|
|
|
|
export type MSTeamsSdk = typeof import("@microsoft/agents-hosting");
|
|
export type MSTeamsAuthConfig = ReturnType<MSTeamsSdk["getAuthConfigWithDefaults"]>;
|
|
|
|
export async function loadMSTeamsSdk(): Promise<MSTeamsSdk> {
|
|
return await import("@microsoft/agents-hosting");
|
|
}
|
|
|
|
export function buildMSTeamsAuthConfig(
|
|
creds: MSTeamsCredentials,
|
|
sdk: MSTeamsSdk,
|
|
): MSTeamsAuthConfig {
|
|
return sdk.getAuthConfigWithDefaults({
|
|
clientId: creds.appId,
|
|
clientSecret: creds.appPassword,
|
|
tenantId: creds.tenantId,
|
|
});
|
|
}
|
|
|
|
export function createMSTeamsAdapter(
|
|
authConfig: MSTeamsAuthConfig,
|
|
sdk: MSTeamsSdk,
|
|
): MSTeamsAdapter {
|
|
return new sdk.CloudAdapter(authConfig) as unknown as MSTeamsAdapter;
|
|
}
|
|
|
|
export async function loadMSTeamsSdkWithAuth(creds: MSTeamsCredentials) {
|
|
const sdk = await loadMSTeamsSdk();
|
|
const authConfig = buildMSTeamsAuthConfig(creds, sdk);
|
|
return { sdk, authConfig };
|
|
}
|