Skip to content

Commit

Permalink
refactor: add a function for finish last timing record and compact lo…
Browse files Browse the repository at this point in the history
…gic a bit
  • Loading branch information
ihexxa authored and jackkav committed Jun 6, 2024
1 parent 1ae3010 commit 0bab121
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 33 deletions.
42 changes: 14 additions & 28 deletions packages/insomnia/src/network/request-timing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,43 +22,29 @@ export function addRequestTimingRecord(
executionId: string,
record: TimingRecord,
) {
const existingRecords = requestTimingRecords.get(executionId);

let existingRecords = requestTimingRecords.get(executionId);
if (existingRecords) {
if (existingRecords?.length > 0) {
const theLatestRecord = existingRecords[existingRecords.length - 1];
theLatestRecord.isDone = true;
theLatestRecord.endedAt = Date.now();
}
existingRecords.push(record);
requestTimingRecords.set(executionId, existingRecords);

const observer = requestTimingObservers.get(executionId);
if (observer) {
observer(existingRecords);
}
} else {
requestTimingRecords.set(executionId, [record]);
existingRecords = [record];
}

const observer = requestTimingObservers.get(executionId);
if (observer) {
observer([record]);
}
requestTimingRecords.set(executionId, existingRecords);
const observer = requestTimingObservers.get(executionId);
if (observer) {
observer(existingRecords);
}
}

export function endRequestTiming(executionId: string, endedAt: number) {
export function finishLastRequestTimingRecord(executionId: string) {
const existingRecords = requestTimingRecords.get(executionId);

if (existingRecords && existingRecords.length > 0) {
const theLatestRecord = existingRecords[existingRecords.length - 1];
theLatestRecord.endedAt = endedAt;

const observer = requestTimingObservers.get(executionId);
if (observer) {
observer(existingRecords);
}
if (!existingRecords || existingRecords.length === 0) {
return;
}

const theLatestRecord = existingRecords[existingRecords.length - 1];
theLatestRecord.isDone = true;
theLatestRecord.endedAt = Date.now();
}

export function deleteRequestTiming(executionId: string) {
Expand Down
10 changes: 5 additions & 5 deletions packages/insomnia/src/ui/routes/request.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import { fetchRequestData, getPreRequestScriptOutput, responseTransform, savePat
import {
addRequestTimingRecord,
deleteRequestTiming,
endRequestTiming,
finishLastRequestTimingRecord,
} from '../../network/request-timing';
import { RenderErrorSubType } from '../../templating';
import { invariant } from '../../utils/invariant';
Expand Down Expand Up @@ -389,6 +389,7 @@ export const sendAction: ActionFunction = async ({ request, params }) => {
const afterResponseScript = `${mutatedContext.request.afterResponseScript}`;
mutatedContext.request.afterResponseScript = '';

finishLastRequestTimingRecord(requestId);
addRequestTimingRecord(
requestId,
{
Expand Down Expand Up @@ -422,6 +423,7 @@ export const sendAction: ActionFunction = async ({ request, params }) => {
}
}

finishLastRequestTimingRecord(requestId);
addRequestTimingRecord(
requestId,
{
Expand All @@ -441,14 +443,13 @@ export const sendAction: ActionFunction = async ({ request, params }) => {
requestData.responseId
);

endRequestTiming(requestId, Date.now());

const requestMeta = await models.requestMeta.getByParentId(requestId);
invariant(requestMeta, 'RequestMeta not found');
const responsePatch = await responseTransform(response, requestData.activeEnvironmentId, renderedRequest, renderedResult.context);
const is2XXWithBodyPath = responsePatch.statusCode && responsePatch.statusCode >= 200 && responsePatch.statusCode < 300 && responsePatch.bodyPath;
const shouldWriteToFile = shouldPromptForPathAfterResponse && is2XXWithBodyPath;

finishLastRequestTimingRecord(requestId);
mutatedContext.request.afterResponseScript = afterResponseScript;
if (requestData.request.afterResponseScript) {
addRequestTimingRecord(
Expand Down Expand Up @@ -557,6 +558,7 @@ export const createAndSendToMockbinAction: ActionFunction = async ({ request })
const renderResult = await tryToInterpolateRequest(req, environment._id, RENDER_PURPOSE_SEND);
const renderedRequest = await tryToTransformRequestWithPlugins(renderResult);

finishLastRequestTimingRecord(mockRoute._id);
addRequestTimingRecord(
mockRoute._id,
{
Expand All @@ -576,8 +578,6 @@ export const createAndSendToMockbinAction: ActionFunction = async ({ request })
responseId,
);

endRequestTiming(mockRoute._id, Date.now());

const response = await responseTransform(res, activeEnvironmentId, renderedRequest, renderResult.context);
await models.response.create(response);
return null;
Expand Down

0 comments on commit 0bab121

Please sign in to comment.