mirror of
https://github.com/morgan9e/chatgpt-web
synced 2026-04-14 00:14:04 +09:00
Simplify error handler
This commit is contained in:
@@ -48,6 +48,7 @@
|
|||||||
import { ChatCompletionResponse } from './ChatCompletionResponse.svelte'
|
import { ChatCompletionResponse } from './ChatCompletionResponse.svelte'
|
||||||
import { EventStreamContentType, fetchEventSource } from '@microsoft/fetch-event-source'
|
import { EventStreamContentType, fetchEventSource } from '@microsoft/fetch-event-source'
|
||||||
import { getApiBase, getEndpointCompletions } from './ApiUtil.svelte'
|
import { getApiBase, getEndpointCompletions } from './ApiUtil.svelte'
|
||||||
|
import type { ServerResponse } from 'http'
|
||||||
|
|
||||||
export let params = { chatId: '' }
|
export let params = { chatId: '' }
|
||||||
const chatId: number = parseInt(params.chatId)
|
const chatId: number = parseInt(params.chatId)
|
||||||
@@ -387,6 +388,17 @@
|
|||||||
signal
|
signal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleError = async (response) => {
|
||||||
|
let errorResponse
|
||||||
|
try {
|
||||||
|
const errObj = await response.json()
|
||||||
|
errorResponse = errObj?.error?.code || 'Unexpected Response'
|
||||||
|
} catch (e) {
|
||||||
|
errorResponse = 'Unknown Response'
|
||||||
|
}
|
||||||
|
throw new Error(`${response.status} - ${errorResponse}`)
|
||||||
|
}
|
||||||
|
|
||||||
// fetchEventSource doesn't seem to throw on abort, so...
|
// fetchEventSource doesn't seem to throw on abort, so...
|
||||||
const abortListener = (e:Event) => {
|
const abortListener = (e:Event) => {
|
||||||
controller = new AbortController()
|
controller = new AbortController()
|
||||||
@@ -431,14 +443,7 @@
|
|||||||
// everything's good
|
// everything's good
|
||||||
} else {
|
} else {
|
||||||
// client-side errors are usually non-retriable:
|
// client-side errors are usually non-retriable:
|
||||||
let errorResponse
|
await handleError(response)
|
||||||
try {
|
|
||||||
const errObj = await response.json()
|
|
||||||
errorResponse = errObj?.error?.code || 'Unexpected Response'
|
|
||||||
} catch (e) {
|
|
||||||
errorResponse = 'Unknown Response'
|
|
||||||
}
|
|
||||||
throw new Error(`${response.status} - ${errorResponse}`)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@@ -447,18 +452,10 @@
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const response = await fetch(getApiBase() + getEndpointCompletions(), fetchOptions)
|
const response = await fetch(getApiBase() + getEndpointCompletions(), fetchOptions)
|
||||||
const json = await response.json()
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
// client-side errors are usually non-retriable:
|
await handleError(response)
|
||||||
let errorResponse
|
|
||||||
try {
|
|
||||||
errorResponse = json?.error?.code || 'Unexpected Response'
|
|
||||||
} catch (e) {
|
|
||||||
errorResponse = 'Unknown Response'
|
|
||||||
}
|
}
|
||||||
throw new Error(`${response.status} - ${errorResponse}`)
|
const json = await response.json()
|
||||||
}
|
|
||||||
|
|
||||||
// Remove updating indicator
|
// Remove updating indicator
|
||||||
updating = false
|
updating = false
|
||||||
updatingMessage = ''
|
updatingMessage = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user