• Resolves multiple credential fields at once, tracking the source of each value.

    Type Parameters

    • T extends Record<string, unknown>

    Parameters

    • requestCredentials: Partial<T>

      Credentials provided in the request

    • envCredentials: Partial<T>

      Credentials from environment variables

    • fieldNames: (keyof T)[]

      Array of field names to resolve

    • disableFallback: boolean

      If true, don't use environment values

    Returns CredentialResolutionResult<Partial<T>>

    Resolution result with values and source tracking

    Example

    const result = resolveCredentials(
    credentials,
    { tenantId: process.env.AZURE_TENANT_ID, clientId: process.env.AZURE_CLIENT_ID },
    ['tenantId', 'clientId', 'clientSecret'],
    credentials?.disableEnvironmentFallback ?? false
    );

    console.log(result.source); // 'mixed' if some from request, some from env
    console.log(result.fieldSources); // { tenantId: 'request', clientId: 'environment', ... }