diff --git a/packages/widgets/src/lib/components/InferenceWidget/shared/helpers.ts b/packages/widgets/src/lib/components/InferenceWidget/shared/helpers.ts index 6c1a2ca853..e17e6b7334 100644 --- a/packages/widgets/src/lib/components/InferenceWidget/shared/helpers.ts +++ b/packages/widgets/src/lib/components/InferenceWidget/shared/helpers.ts @@ -101,11 +101,7 @@ export async function callInferenceApi( useCache = true ): Promise> { const contentType = - "file" in requestBody && - requestBody["file"] && - typeof requestBody["file"] === "object" && - "type" in requestBody["file"] && - typeof requestBody["file"]["type"] === "string" + "file" in requestBody && requestBody["file"] && requestBody["file"] instanceof Blob && requestBody["file"].type ? requestBody["file"]["type"] : "application/json"; @@ -124,8 +120,9 @@ export async function callInferenceApi( headers.set("X-Load-Model", "0"); } - const reqBody: File | string = - "file" in requestBody && requestBody["file"] instanceof File ? requestBody.file : JSON.stringify(requestBody); + // `File` is a subtype of `Blob`: therefore, checking for instanceof `Blob` also checks for instanceof `File` + const reqBody: Blob | string = + "file" in requestBody && requestBody["file"] instanceof Blob ? requestBody.file : JSON.stringify(requestBody); const response = await fetch(`${url}/models/${repoId}`, { method: "POST",