From 6df1447d33244d58a86749288e051b3fbedaa6f9 Mon Sep 17 00:00:00 2001 From: myl7 Date: Mon, 24 Jan 2022 23:16:10 +0800 Subject: [PATCH] update error inner structure --- components/FileListing.tsx | 2 +- components/MultiFileDownloader.tsx | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/components/FileListing.tsx b/components/FileListing.tsx index a947055..f49c6b5 100644 --- a/components/FileListing.tsx +++ b/components/FileListing.tsx @@ -299,7 +299,7 @@ const FileListing: FC<{ query?: ParsedUrlQuery }> = ({ query }) => { const files = (async function* () { for await (const { meta: c, path: p, isFolder, error } of traverseFolder(path)) { if (error) { - toast.error(`Failed to download folder ${p}: ${error[0]} ${error[1]} Skipped it to continue.`) + toast.error(`Failed to download folder ${p}: ${error.status} ${error.message} Skipped it to continue.`) continue } yield { diff --git a/components/MultiFileDownloader.tsx b/components/MultiFileDownloader.tsx index e08a96b..b4f5b60 100644 --- a/components/MultiFileDownloader.tsx +++ b/components/MultiFileDownloader.tsx @@ -168,7 +168,7 @@ export async function* traverseFolder(path: string): AsyncGenerator< path: string meta: any isFolder: boolean - error?: [number, string] + error?: { status: number; message: string } }, void, undefined @@ -184,13 +184,12 @@ export async function* traverseFolder(path: string): AsyncGenerator< try { data = await fetcher(`/api?path=${fp}`, hashedToken ?? undefined) } catch (error: any) { - console.log(error) // 4xx errors are identified as handleable errors if (Math.floor(error.status / 100) === 4) { return { path: fp, isFolder: true, - error: [error.status as number, error.message.error as string] + error: { status: error.status, message: error.message.error }, } } else { throw error @@ -209,7 +208,12 @@ export async function* traverseFolder(path: string): AsyncGenerator< ) ) - const items = itemLists.flat() as { path: string; meta: any; isFolder: boolean; error?: [number, string] }[] + const items = itemLists.flat() as { + path: string + meta: any + isFolder: boolean + error?: { status: number; message: string } + }[] yield * items folderPaths = items .filter(({ error }) => !error)