| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent a7f0d72 commit ea75787
13 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,5 @@ | |||
| 1 | + --- | ||
| 2 | + '@ai-sdk/gateway': patch | ||
| 3 | + --- | ||
| 4 | + | ||
| 5 | + Serialize structured Gateway error responses in nested API call error messages. | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -6,6 +6,7 @@ import { | |||
| 6 | 6 | combineHeaders, | |
| 7 | 7 | createJsonErrorResponseHandler, | |
| 8 | 8 | createJsonResponseHandler, | |
| 9 | + getErrorMessage, | ||
| 9 | 10 | lazySchema, | |
| 10 | 11 | postJsonToApi, | |
| 11 | 12 | resolve, | |
@@ -86,7 +87,7 @@ export class GatewayEmbeddingModel implements EmbeddingModelV4 { | |||
| 86 | 87 | ), | |
| 87 | 88 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 88 | 89 | errorSchema: z.any(), | |
| 89 | - errorToMessage: data => data, | ||
| 90 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 90 | 91 | }), | |
| 91 | 92 | ...(abortSignal && { abortSignal }), | |
| 92 | 93 | fetch: this.config.fetch, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,7 @@ | |||
| 1 | 1 | import { | |
| 2 | 2 | createJsonErrorResponseHandler, | |
| 3 | 3 | createJsonResponseHandler, | |
| 4 | + getErrorMessage, | ||
| 4 | 5 | getFromApi, | |
| 5 | 6 | lazySchema, | |
| 6 | 7 | resolve, | |
@@ -43,7 +44,7 @@ export class GatewayFetchMetadata { | |||
| 43 | 44 | ), | |
| 44 | 45 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 45 | 46 | errorSchema: z.any(), | |
| 46 | - errorToMessage: data => data, | ||
| 47 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 47 | 48 | }), | |
| 48 | 49 | fetch: this.config.fetch, | |
| 49 | 50 | }); | |
@@ -69,7 +70,7 @@ export class GatewayFetchMetadata { | |||
| 69 | 70 | ), | |
| 70 | 71 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 71 | 72 | errorSchema: z.any(), | |
| 72 | - errorToMessage: data => data, | ||
| 73 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 73 | 74 | }), | |
| 74 | 75 | fetch: this.config.fetch, | |
| 75 | 76 | }); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,7 @@ | |||
| 1 | 1 | import { | |
| 2 | 2 | createJsonErrorResponseHandler, | |
| 3 | 3 | createJsonResponseHandler, | |
| 4 | + getErrorMessage, | ||
| 4 | 5 | getFromApi, | |
| 5 | 6 | lazySchema, | |
| 6 | 7 | resolve, | |
@@ -74,7 +75,7 @@ export class GatewayGenerationInfoFetcher { | |||
| 74 | 75 | ), | |
| 75 | 76 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 76 | 77 | errorSchema: z.any(), | |
| 77 | - errorToMessage: data => data, | ||
| 78 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 78 | 79 | }), | |
| 79 | 80 | fetch: this.config.fetch, | |
| 80 | 81 | }); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -6,8 +6,9 @@ import type { | |||
| 6 | 6 | import { | |
| 7 | 7 | combineHeaders, | |
| 8 | 8 | convertUint8ArrayToBase64, | |
| 9 | - createJsonResponseHandler, | ||
| 10 | 9 | createJsonErrorResponseHandler, | |
| 10 | + createJsonResponseHandler, | ||
| 11 | + getErrorMessage, | ||
| 11 | 12 | postJsonToApi, | |
| 12 | 13 | resolve, | |
| 13 | 14 | serializeModelOptions, | |
@@ -96,7 +97,7 @@ export class GatewayImageModel implements ImageModelV4 { | |||
| 96 | 97 | ), | |
| 97 | 98 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 98 | 99 | errorSchema: z.any(), | |
| 99 | - errorToMessage: data => data, | ||
| 100 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 100 | 101 | }), | |
| 101 | 102 | ...(abortSignal && { abortSignal }), | |
| 102 | 103 | fetch: this.config.fetch, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,7 @@ | |||
| 1 | - import type { | ||
| 2 | - LanguageModelV4Prompt, | ||
| 3 | - LanguageModelV4FilePart, | ||
| 1 | + import { | ||
| 2 | + APICallError, | ||
| 3 | + type LanguageModelV4FilePart, | ||
| 4 | + type LanguageModelV4Prompt, | ||
| 4 | 5 | } from '@ai-sdk/provider'; | |
| 5 | 6 | import { createTestServer } from '@ai-sdk/test-server/with-vitest'; | |
| 6 | 7 | import { convertReadableStreamToArray } from '@ai-sdk/provider-utils/test'; | |
@@ -524,6 +525,10 @@ describe('GatewayLanguageModel', () => { | |||
| 524 | 525 | expect(serverError.message).toBe('Database connection failed'); | |
| 525 | 526 | expect(serverError.statusCode).toBe(500); | |
| 526 | 527 | expect(serverError.type).toBe('internal_server_error'); | |
| 528 | + expect(APICallError.isInstance(serverError.cause)).toBe(true); | ||
| 529 | + expect((serverError.cause as APICallError).message).toContain( | ||
| 530 | + 'Database connection failed', | ||
| 531 | + ); | ||
| 527 | 532 | } | |
| 528 | 533 | }); | |
| 529 | 534 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -10,6 +10,7 @@ import { | |||
| 10 | 10 | createEventSourceResponseHandler, | |
| 11 | 11 | createJsonErrorResponseHandler, | |
| 12 | 12 | createJsonResponseHandler, | |
| 13 | + getErrorMessage, | ||
| 13 | 14 | postJsonToApi, | |
| 14 | 15 | resolve, | |
| 15 | 16 | serializeModelOptions, | |
@@ -92,7 +93,7 @@ export class GatewayLanguageModel implements LanguageModelV4 { | |||
| 92 | 93 | successfulResponseHandler: createJsonResponseHandler(z.any()), | |
| 93 | 94 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 94 | 95 | errorSchema: z.any(), | |
| 95 | - errorToMessage: data => data, | ||
| 96 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 96 | 97 | }), | |
| 97 | 98 | ...(abortSignal && { abortSignal }), | |
| 98 | 99 | fetch: this.config.fetch, | |
@@ -135,7 +136,7 @@ export class GatewayLanguageModel implements LanguageModelV4 { | |||
| 135 | 136 | successfulResponseHandler: createEventSourceResponseHandler(z.any()), | |
| 136 | 137 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 137 | 138 | errorSchema: z.any(), | |
| 138 | - errorToMessage: data => data, | ||
| 139 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 139 | 140 | }), | |
| 140 | 141 | ...(abortSignal && { abortSignal }), | |
| 141 | 142 | fetch: this.config.fetch, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,6 +1,7 @@ | |||
| 1 | 1 | import { | |
| 2 | 2 | createJsonErrorResponseHandler, | |
| 3 | 3 | createJsonResponseHandler, | |
| 4 | + getErrorMessage, | ||
| 4 | 5 | loadOptionalSetting, | |
| 5 | 6 | postJsonToApi, | |
| 6 | 7 | withoutTrailingSlash, | |
@@ -372,7 +373,7 @@ export function createGateway( | |||
| 372 | 373 | ), | |
| 373 | 374 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 374 | 375 | errorSchema: z.any(), | |
| 375 | - errorToMessage: data => data, | ||
| 376 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 376 | 377 | }), | |
| 377 | 378 | fetch: options.fetch, | |
| 378 | 379 | }); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -6,6 +6,7 @@ import { | |||
| 6 | 6 | combineHeaders, | |
| 7 | 7 | createJsonErrorResponseHandler, | |
| 8 | 8 | createJsonResponseHandler, | |
| 9 | + getErrorMessage, | ||
| 9 | 10 | lazySchema, | |
| 10 | 11 | postJsonToApi, | |
| 11 | 12 | resolve, | |
@@ -69,7 +70,7 @@ export class GatewayRerankingModel implements RerankingModelV4 { | |||
| 69 | 70 | ), | |
| 70 | 71 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 71 | 72 | errorSchema: z.any(), | |
| 72 | - errorToMessage: data => data, | ||
| 73 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 73 | 74 | }), | |
| 74 | 75 | ...(abortSignal && { abortSignal }), | |
| 75 | 76 | fetch: this.config.fetch, | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -7,6 +7,7 @@ import { | |||
| 7 | 7 | combineHeaders, | |
| 8 | 8 | createJsonErrorResponseHandler, | |
| 9 | 9 | createJsonResponseHandler, | |
| 10 | + getErrorMessage, | ||
| 10 | 11 | postJsonToApi, | |
| 11 | 12 | resolve, | |
| 12 | 13 | type Resolvable, | |
@@ -74,7 +75,7 @@ export class GatewaySpeechModel implements SpeechModelV4 { | |||
| 74 | 75 | ), | |
| 75 | 76 | failedResponseHandler: createJsonErrorResponseHandler({ | |
| 76 | 77 | errorSchema: z.any(), | |
| 77 | - errorToMessage: data => data, | ||
| 78 | + errorToMessage: data => getErrorMessage(data) ?? 'unknown error', | ||
| 78 | 79 | }), | |
| 79 | 80 | ...(abortSignal && { abortSignal }), | |
| 80 | 81 | fetch: this.config.fetch, | |
| Back | FazBrowse Home | New Git URL |
0 commit comments