diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md index 45ff679b737be..8e15f4fb1644d 100644 --- a/packages/sdk/CHANGELOG.md +++ b/packages/sdk/CHANGELOG.md @@ -2,6 +2,14 @@ # Changelog +## [1.5.3] - 2025-04-18 + +### Added + +- Added `ProxyResponse` type for makeProxyRequest +- changed the location of connect DEBUG calls so they'll still show in the + error case. + ## [1.5.2] - 2025-04-15 ### Added diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 82dc658adea64..ccfcddac5abef 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,7 +1,7 @@ { "name": "@pipedream/sdk", "type": "module", - "version": "1.5.2", + "version": "1.5.3", "description": "Pipedream SDK", "main": "./dist/server.js", "module": "./dist/server.js", diff --git a/packages/sdk/src/server/index.ts b/packages/sdk/src/server/index.ts index 1ad8500f9cb83..3b6171a0a3f32 100644 --- a/packages/sdk/src/server/index.ts +++ b/packages/sdk/src/server/index.ts @@ -149,6 +149,14 @@ export type ProxyTargetApiRequest = { options: ProxyTargetApiOpts; }; +/** + * The parsed response body from a proxied API request. + * + * If the response has a Content-Type of application/json, the body will be parsed + * and returned as an object. Otherwise the type will be a string. + */ +export type ProxyResponse = Record | string; + /** * Creates a new instance of BackendClient with the provided options. * @@ -422,7 +430,7 @@ export class BackendClient extends BaseClient { * * @returns A promise resolving to the response from the downstream service */ - public makeProxyRequest(proxyOptions: ProxyApiOpts, targetRequest: ProxyTargetApiRequest): Promise { + public makeProxyRequest(proxyOptions: ProxyApiOpts, targetRequest: ProxyTargetApiRequest): Promise { const url64 = btoa(targetRequest.url).replace(/\+/g, "-") .replace(/\//g, "_") .replace(/=+$/, ""); diff --git a/packages/sdk/src/shared/index.ts b/packages/sdk/src/shared/index.ts index fbbf4b0165e1f..9b4ff605ed5de 100644 --- a/packages/sdk/src/shared/index.ts +++ b/packages/sdk/src/shared/index.ts @@ -1021,11 +1021,15 @@ export abstract class BaseClient { const rawBody = await response.text(); + DEBUG("status: ", response.status) + DEBUG("url: ", url.toString()) + DEBUG("requestOptions: ", requestOptions) + DEBUG("rawBody: ", rawBody) + if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}, body: ${rawBody}`); } - DEBUG(response.status, url.toString(), requestOptions, rawBody) const contentType = response.headers.get("Content-Type"); if (contentType && contentType.includes("application/json")) { try {