UNPKG

@ai-sdk/provider-utils

Version:
41 lines (38 loc) • 1.04 kB
import type { Experimental_BatchV4Status as BatchV4Status } from '@ai-sdk/provider'; /** * Normalizes complete batch request counts. * * Returns `undefined` when any count is missing, is not a non-negative safe * integer, or when the item counts do not add up to the total. */ export function normalizeBatchRequestCounts({ total, pending, completed, failed, }: { total: number | null | undefined; pending: number | null | undefined; completed: number | null | undefined; failed: number | null | undefined; }): BatchV4Status['requestCounts'] | undefined { if ( isNonNegativeSafeInteger(total) && isNonNegativeSafeInteger(pending) && isNonNegativeSafeInteger(completed) && isNonNegativeSafeInteger(failed) && pending + completed + failed === total ) { return { total, pending, completed, failed, }; } } function isNonNegativeSafeInteger( value: number | null | undefined, ): value is number { return value != null && Number.isSafeInteger(value) && value >= 0; }