@forge/kvs
1.5.1-next.01.6.0-next.1
out/utils/error-handling.js~
out/utils/error-handling.jsModified+14−7
Index: package/out/utils/error-handling.js
===================================================================
--- package/out/utils/error-handling.js
+++ package/out/utils/error-handling.js
@@ -1,7 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.checkResponseError = exports.extractTraceId = exports.safeGetParsedBody = exports.isForgeError = void 0;
+exports.checkResponseError = exports.extractTraceId = exports.getAPIErrorResponseDetails = exports.safeGetParsedBody = exports.isForgeError = void 0;
const errors_1 = require("../errors");
function isForgeError(body) {
return typeof body === 'object' && body !== null && 'code' in body && 'message' in body;
}
@@ -14,22 +14,29 @@
return undefined;
}
}
exports.safeGetParsedBody = safeGetParsedBody;
+function getAPIErrorResponseDetails(response, responseText, requestContext) {
+ return {
+ status: response.status,
+ statusText: response.statusText,
+ traceId: extractTraceId(response),
+ httpMethod: requestContext?.httpMethod,
+ httpPath: requestContext?.httpPath,
+ responseBodyLength: responseText.length
+ };
+}
+exports.getAPIErrorResponseDetails = getAPIErrorResponseDetails;
function extractTraceId(response) {
return response.headers.get('x-b3-traceid') || response.headers.get('x-trace-id');
}
exports.extractTraceId = extractTraceId;
-async function checkResponseError(response) {
+async function checkResponseError(response, requestContext) {
if (response.ok) {
return;
}
const responseText = await response.text();
- const details = {
- status: response.status,
- statusText: response.statusText,
- traceId: extractTraceId(response)
- };
+ const details = getAPIErrorResponseDetails(response, responseText, requestContext);
const parsedBody = safeGetParsedBody(responseText);
if (parsedBody && isForgeError(parsedBody)) {
throw new errors_1.ForgeKvsAPIError(details, parsedBody);
}