Skip to content

Commit 6b3adaf

Browse files
committed
export har ipc bridge
1 parent 4f7cd72 commit 6b3adaf

5 files changed

Lines changed: 18 additions & 10 deletions

File tree

packages/insomnia/src/entry.preload.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ const cookies: CookiesBridgeAPI = {
122122
toString: cookie => invokeWithNormalizedError('cookies.toString', cookie),
123123
getCookiesForUrl: args => invokeWithNormalizedError('cookies.getCookiesForUrl', args),
124124
addSetCookies: args => invokeWithNormalizedError('cookies.addSetCookies', args),
125+
getResponseCookiesFromHeaders: headers => invokeWithNormalizedError('cookies.getResponseCookiesFromHeaders', headers),
125126
};
126127

127128
const grpc: gRPCBridgeAPI = {

packages/insomnia/src/main/har.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -306,16 +306,18 @@ async function getRequestCookies(renderedRequest: RenderedRequest): Promise<Har.
306306
return domainCookies.map(mapCookieToHar);
307307
}
308308

309-
export async function getResponseCookiesFromHeaders(headers: Har.Cookie[]): Promise<Har.Cookie[]> {
309+
export function getResponseCookiesFromHeaders(headers: Har.Cookie[]): Har.Cookie[] {
310310
const setCookieHeaders = getSetCookieHeaders(headers);
311-
const results: Har.Cookie[] = [];
312-
for (const harCookie of setCookieHeaders) {
313-
const cookie = parseCookie(harCookie.value || '');
311+
const cookies: Har.Cookie[] = [];
312+
313+
for (const header of setCookieHeaders) {
314+
const cookie = parseCookie(header.value);
314315
if (cookie) {
315-
results.push(mapCookieToHar(cookie));
316+
cookies.push(mapCookieToHar(cookie));
316317
}
317318
}
318-
return results;
319+
320+
return cookies;
319321
}
320322

321323
async function getResponseCookies(response: Response): Promise<Har.Cookie[]> {

packages/insomnia/src/main/ipc/cookies.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import type * as Har from 'har-format';
12
import type { Cookie } from 'insomnia-data';
23
import { Cookie as ToughCookie, CookieJar } from 'tough-cookie';
34

5+
import { getResponseCookiesFromHeaders } from '../har';
46
import { ipcMainHandle } from './electron';
57

68
type CookieInput = Cookie | string;
@@ -102,6 +104,7 @@ export interface CookiesBridgeAPI {
102104
toString: (cookie: CookieInput) => Promise<string>;
103105
getCookiesForUrl: (args: { cookies: Cookie[]; url: string }) => Promise<Cookie[]>;
104106
addSetCookies: (args: AddSetCookiesArgs) => Promise<AddSetCookiesResult>;
107+
getResponseCookiesFromHeaders: (headers: Har.Cookie[]) => Promise<Har.Cookie[]>;
105108
}
106109

107110
export function registerCookieHandlers() {
@@ -120,4 +123,7 @@ export function registerCookieHandlers() {
120123
ipcMainHandle('cookies.addSetCookies', (_, args: AddSetCookiesArgs) => {
121124
return addSetCookiesToToughCookieJar(args);
122125
});
126+
ipcMainHandle('cookies.getResponseCookiesFromHeaders', (_, headers: { name: string; value: string }[]) => {
127+
return getResponseCookiesFromHeaders(headers);
128+
});
123129
}

packages/insomnia/src/main/ipc/electron.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,8 @@ export type HandleChannels =
193193
| 'cookies.parse'
194194
| 'cookies.toString'
195195
| 'cookies.getCookiesForUrl'
196-
| 'cookies.addSetCookies';
196+
| 'cookies.addSetCookies'
197+
| 'cookies.getResponseCookiesFromHeaders';
197198

198199
export const ipcMainHandle = (
199200
channel: HandleChannels,

packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.mock-server.mock-route.$mockRouteId.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import {
1818
RESPONSE_CODE_REASONS,
1919
} from '~/common/constants';
2020
import { database as db } from '~/common/database';
21-
import { getResponseCookiesFromHeaders } from '~/main/har';
2221
import { useRootLoaderData } from '~/root';
2322
import { useRequestNewMockSendActionFetcher } from '~/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.debug.request.new-mock-send';
2423
import { useMockRouteUpdateActionFetcher } from '~/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.mock-server.mock-route.$mockRouteId.update';
@@ -85,7 +84,6 @@ const mockContentTypes = [
8584
];
8685
export const isInMockContentTypeList = (contentType: string): boolean =>
8786
Boolean(contentType && mockContentTypes.includes(contentType));
88-
8987
// mockbin expect a HAR response structure
9088
export const mockRouteToHar = async ({
9189
statusCode,
@@ -106,7 +104,7 @@ export const mockRouteToHar = async ({
106104
statusText: statusText || RESPONSE_CODE_REASONS[+statusCode] || '',
107105
httpVersion: 'HTTP/1.1',
108106
headers: validHeaders,
109-
cookies: await getResponseCookiesFromHeaders(validHeaders),
107+
cookies: await window.main.cookies.getResponseCookiesFromHeaders(validHeaders),
110108
content: {
111109
size: Buffer.byteLength(body),
112110
mimeType,

0 commit comments

Comments
 (0)