MCPcopy Index your code
hub / github.com/TanStack/ai / buildImagesUsage

Function buildImagesUsage

packages/openai-base/src/usage.ts:129–159  ·  view source on GitHub ↗
(
  usage: OpenAI.Images.ImagesResponse['usage'] | undefined | null,
)

Source from the content-addressed store, hash-verified

127 * omit the field rather than emit zeroed totals.
128 */
129export function buildImagesUsage(
130 usage: OpenAI.Images.ImagesResponse['usage'] | undefined | null,
131): TokenUsage | undefined {
132 if (!usage) return undefined
133
134 const result = buildBaseUsage({
135 promptTokens: usage.input_tokens || 0,
136 completionTokens: usage.output_tokens || 0,
137 totalTokens: usage.total_tokens || 0,
138 })
139
140 // The SDK types input_tokens_details (and its numeric fields) as required, but
141 // real responses — e.g. from DALL·E or other non-token-billed models — can
142 // omit them, so treat the breakdown as optional.
143 const inputDetails = usage.input_tokens_details as
144 | { text_tokens?: number; image_tokens?: number }
145 | undefined
146 const promptTokensDetails = {
147 ...(inputDetails?.text_tokens
148 ? { textTokens: inputDetails.text_tokens }
149 : {}),
150 ...(inputDetails?.image_tokens
151 ? { imageTokens: inputDetails.image_tokens }
152 : {}),
153 }
154 if (Object.keys(promptTokensDetails).length > 0) {
155 result.promptTokensDetails = promptTokensDetails
156 }
157
158 return result
159}

Callers 4

generateImagesMethod · 0.90
generateImagesMethod · 0.90
editImagesMethod · 0.90

Calls 1

buildBaseUsageFunction · 0.90

Tested by

no test coverage detected