import { AuthenticationResult } from '@azure/msal-node'; import { IdentityProvider, TokenResponse } from '@redis/client/dist/lib/authx'; export class MSALIdentityProvider implements IdentityProvider { private readonly getToken: () => Promise; constructor(getToken: () => Promise) { this.getToken = getToken; } async requestToken(): Promise> { const result = await this.getToken(); if (!result?.accessToken || !result?.expiresOn) { throw new Error('Invalid token response'); } return { token: result, ttlMs: result.expiresOn.getTime() - Date.now() }; } }