@@ -3,6 +3,7 @@ import fs from "node:fs/promises";
33import path from "node:path" ;
44import { AsyncQueue } from "../util/async-queue.ts" ;
55import { getContentType } from "../util/content-type.ts" ;
6+ import { CloudflareApiError } from "./api-error.ts" ;
67import type { CloudflareApi } from "./api.ts" ;
78import type { Assets } from "./assets.ts" ;
89import type { AssetsConfig , WorkerProps } from "./worker.ts" ;
@@ -84,8 +85,26 @@ export async function uploadAssets(
8485 const sessionData =
8586 ( await uploadSessionResponse . json ( ) ) as UploadSessionResponse ;
8687
88+ if ( ! sessionData ?. success ) {
89+ if ( sessionData ?. errors ) {
90+ throw new CloudflareApiError (
91+ `Failed to start assets upload session:\n${ sessionData . errors
92+ . map ( ( error ) => `- ${ error . code } : ${ error . message } ` )
93+ . join ( "\n" ) } `,
94+ uploadSessionResponse ,
95+ ) ;
96+ }
97+ throw new CloudflareApiError (
98+ `Failed to start assets upload session: ${ uploadSessionResponse . statusText } ` ,
99+ uploadSessionResponse ,
100+ ) ;
101+ }
102+
87103 // If there are no buckets, assets are already uploaded or empty
88- if ( ! sessionData . result . buckets || sessionData . result . buckets . length === 0 ) {
104+ if (
105+ ! sessionData ?. result ?. buckets ||
106+ sessionData . result . buckets . length === 0
107+ ) {
89108 return {
90109 completionToken : sessionData . result . jwt ,
91110 assetConfig : processedConfig ,
0 commit comments