Accurate response time and size (#1441)

Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
Liyas Thomas
2021-01-28 13:09:31 +05:30
committed by GitHub
parent 99e634711e
commit 7e4297d9bf
14 changed files with 144 additions and 48 deletions

View File

@@ -1,6 +1,26 @@
import axios from "axios"
import { decodeB64StringToArrayBuffer } from "../utils/b64"
axios.interceptors.request.use(
(config) => {
config.timeData = { startTime: new Date().getTime() }
return config
},
(error) => {
return Promise.reject(error)
}
)
axios.interceptors.response.use(
(response) => {
response.config.timeData.endTime = new Date().getTime()
return response
},
(error) => {
return Promise.reject(error)
}
)
let cancelSource = axios.CancelToken.source()
export const cancelRunningAxiosRequest = () => {

View File

@@ -16,7 +16,9 @@ export const cancelRunningExtensionRequest = () => {
}
const extensionWithProxy = async (req, { state }) => {
const { data } = await window.__POSTWOMAN_EXTENSION_HOOK__.sendRequest({
const backupTimeDataStart = new Date().getTime();
const res = await window.__POSTWOMAN_EXTENSION_HOOK__.sendRequest({
method: "post",
url: state.postwoman.settings.PROXY_URL || "https://hoppscotch.apollosoftware.xyz/",
data: {
@@ -25,7 +27,9 @@ const extensionWithProxy = async (req, { state }) => {
},
})
const parsedData = JSON.parse(data)
const backupTimeDataEnd = new Date().getTime();
const parsedData = JSON.parse(res.data)
if (!parsedData.success) {
throw new Error(parsedData.data.message || "Proxy Error")
@@ -35,14 +39,38 @@ const extensionWithProxy = async (req, { state }) => {
parsedData.data = decodeB64StringToArrayBuffer(parsedData.data)
}
if (!(res && res.config && res.config.timeData)) {
res.config = {
timeData: {
startTime: backupTimeDataStart,
endTime: backupTimeDataEnd
}
}
}
parsedData.config = res.config
return parsedData
}
const extensionWithoutProxy = async (req, _store) => {
const backupTimeDataStart = new Date().getTime();
const res = await window.__POSTWOMAN_EXTENSION_HOOK__.sendRequest({
...req,
wantsBinary: true,
})
const backupTimeDataEnd = new Date().getTime();
if (!(res && res.config && res.config.timeData)) {
res.config = {
timeData: {
startTime: backupTimeDataStart,
endTime: backupTimeDataEnd
}
}
}
return res
}