fix(common): extention interceptor response meta (#4980)
This commit is contained in:
parent
3c150ec90a
commit
80b63545f1
1 changed files with 53 additions and 0 deletions
|
|
@ -227,6 +227,7 @@ export class ExtensionKernelInterceptorService
|
|||
}
|
||||
|
||||
try {
|
||||
const startTime = Date.now()
|
||||
let requestData: any = null
|
||||
|
||||
if (request.content) {
|
||||
|
|
@ -281,14 +282,40 @@ export class ExtensionKernelInterceptorService
|
|||
wantsBinary: true,
|
||||
})
|
||||
|
||||
const endTime = Date.now()
|
||||
|
||||
const headersSize = JSON.stringify(extensionResponse.headers).length
|
||||
const bodySize = extensionResponse.data?.byteLength || 0
|
||||
const totalSize = headersSize + bodySize
|
||||
|
||||
const timingMeta = extensionResponse.timeData
|
||||
? {
|
||||
start: extensionResponse.timeData.startTime,
|
||||
end: extensionResponse.timeData.endTime,
|
||||
}
|
||||
: {
|
||||
start: startTime,
|
||||
end: endTime,
|
||||
}
|
||||
|
||||
return E.right({
|
||||
id: request.id,
|
||||
status: extensionResponse.status,
|
||||
statusText: extensionResponse.statusText,
|
||||
version: request.version,
|
||||
headers: extensionResponse.headers,
|
||||
body: body.body(
|
||||
extensionResponse.data,
|
||||
extensionResponse.headers["content-type"]
|
||||
),
|
||||
meta: {
|
||||
timing: timingMeta,
|
||||
size: {
|
||||
headers: headersSize,
|
||||
body: bodySize,
|
||||
total: totalSize,
|
||||
},
|
||||
},
|
||||
})
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
|
|
@ -296,11 +323,37 @@ export class ExtensionKernelInterceptorService
|
|||
if (e instanceof Error && "response" in e) {
|
||||
const response = (e as any).response
|
||||
if (response) {
|
||||
const headersSize = JSON.stringify(response.headers).length
|
||||
const bodySize = response.data?.byteLength || 0
|
||||
const totalSize = headersSize + bodySize
|
||||
|
||||
const timingMeta = response.timeData
|
||||
? {
|
||||
start: response.timeData.startTime,
|
||||
end: response.timeData.endTime,
|
||||
}
|
||||
: {
|
||||
// Fallback timing - at least show it took some time,
|
||||
// this is mainly for cross compat with other interceptor settings.
|
||||
start: Date.now() - 1,
|
||||
end: Date.now(),
|
||||
}
|
||||
|
||||
return E.right({
|
||||
id: request.id,
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
version: request.version,
|
||||
headers: response.headers,
|
||||
body: body.body(response.data, response.headers["content-type"]),
|
||||
meta: {
|
||||
timing: timingMeta,
|
||||
size: {
|
||||
headers: headersSize,
|
||||
body: bodySize,
|
||||
total: totalSize,
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue