Skip to content

Commit a4b4166

Browse files
authored
Merge pull request #46 from dev-five-git/error-without-body
Fix error without body
2 parents a5caac0 + bd25c4c commit a4b4166

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"changes":{"packages/fetch/package.json":"Patch","packages/react-query/package.json":"Patch"},"note":"Fix error without body issue","date":"2026-01-27T06:44:10.883719900Z"}

packages/fetch/src/api.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,15 @@ export type DevupApiResponse<T, E = any> =
2929
| {
3030
data: T
3131
error?: undefined
32+
isOk: true
33+
isError: false
3234
response: Response
3335
}
3436
| {
3537
data?: undefined
3638
error: E
39+
isOk: false
40+
isError: true
3741
response: Response
3842
}
3943

@@ -289,6 +293,7 @@ export class DevupApi<S extends ConditionalKeys<DevupApiServers>> {
289293
>
290294

291295
let response = ret.response
296+
const hasError = !ret.response.ok
292297
let error: unknown = ret.error
293298

294299
for (const middleware of finalMiddleware) {
@@ -307,15 +312,15 @@ export class DevupApi<S extends ConditionalKeys<DevupApiServers>> {
307312
if (middleware.onResponse) {
308313
result = await middleware.onResponse({
309314
...middlewareParams,
310-
response: ret.response,
315+
response,
311316
})
312317
}
313318

314319
// Call onError if there's an error and onResponse didn't return a result
315-
if (!result && error && middleware.onError) {
320+
if (!result && hasError && middleware.onError) {
316321
result = await middleware.onError({
317322
...middlewareParams,
318-
error: ret.error,
323+
error,
319324
})
320325
}
321326

@@ -334,6 +339,8 @@ export class DevupApi<S extends ConditionalKeys<DevupApiServers>> {
334339
return {
335340
data: ret.data,
336341
error: error,
342+
isOk: !hasError,
343+
isError: hasError,
337344
response,
338345
} as DevupApiResponse<ExtractValue<O, 'response'>, ExtractValue<O, 'error'>>
339346
}

packages/react-query/src/query-client.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ export class DevupQueryClient<S extends ConditionalKeys<DevupApiServers>> {
9494
signal,
9595
...(options[0] as DevupApiRequestInit),
9696
})
97-
.then(({ data, error }: DevupApiResponse<D, E>) => {
98-
if (error) throw error
97+
.then(({ data, error, isError }: DevupApiResponse<D, E>) => {
98+
if (isError) throw error
9999
return data
100100
}),
101101
...options[1],
@@ -149,8 +149,8 @@ export class DevupQueryClient<S extends ConditionalKeys<DevupApiServers>> {
149149
// biome-ignore lint/suspicious/noExplicitAny: can't use method as a function
150150
(this.api as any)
151151
[mutationKey?.[0] as string](mutationKey?.[1] as T, variables)
152-
.then(({ data, error }: DevupApiResponse<D, E>) => {
153-
if (error) throw error
152+
.then(({ data, error, isError }: DevupApiResponse<D, E>) => {
153+
if (isError) throw error
154154
return data
155155
}),
156156
...queryOptions,
@@ -214,8 +214,8 @@ export class DevupQueryClient<S extends ConditionalKeys<DevupApiServers>> {
214214
signal,
215215
...(options[0] as DevupApiRequestInit),
216216
})
217-
.then(({ data, error }: DevupApiResponse<D, E>) => {
218-
if (error) throw error
217+
.then(({ data, error, isError }: DevupApiResponse<D, E>) => {
218+
if (isError) throw error
219219
return data
220220
}),
221221
...options[1],
@@ -290,8 +290,8 @@ export class DevupQueryClient<S extends ConditionalKeys<DevupApiServers>> {
290290
},
291291
} as DevupApiRequestInit,
292292
)
293-
.then(({ data, error }: DevupApiResponse<D, E>) => {
294-
if (error) throw error
293+
.then(({ data, error, isError }: DevupApiResponse<D, E>) => {
294+
if (isError) throw error
295295
return data as D
296296
})
297297
},
@@ -366,8 +366,8 @@ export class DevupQueryClient<S extends ConditionalKeys<DevupApiServers>> {
366366
signal,
367367
...(restOptions[0] as DevupApiRequestInit),
368368
})
369-
.then(({ data, error }: DevupApiResponse<D, E>) => {
370-
if (error) throw error
369+
.then(({ data, error, isError }: DevupApiResponse<D, E>) => {
370+
if (isError) throw error
371371
return data
372372
}),
373373
...queryOptions,

0 commit comments

Comments
 (0)