From a3c8e2d4cf1b726d8cd4cd3277a80dd9fd82555a Mon Sep 17 00:00:00 2001 From: Ryan Willis Date: Thu, 9 Jan 2025 07:14:37 -0700 Subject: [PATCH] fix parsing to match previous tests --- .../grpc/__tests__/parse-grpc-url.test.ts | 4 ++++ .../insomnia/src/network/grpc/parse-grpc-url.ts | 17 ++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/insomnia/src/network/grpc/__tests__/parse-grpc-url.test.ts b/packages/insomnia/src/network/grpc/__tests__/parse-grpc-url.test.ts index 47d08ef9aa7..55f6edf7340 100644 --- a/packages/insomnia/src/network/grpc/__tests__/parse-grpc-url.test.ts +++ b/packages/insomnia/src/network/grpc/__tests__/parse-grpc-url.test.ts @@ -11,6 +11,7 @@ describe('parseGrpcUrl', () => { expect(parseGrpcUrl(input)).toStrictEqual({ url: expected, enableTls: false, + path: '', }); }); @@ -22,6 +23,7 @@ describe('parseGrpcUrl', () => { expect(parseGrpcUrl(input)).toStrictEqual({ url: expected, enableTls: true, + path: '', }); }); @@ -33,6 +35,7 @@ describe('parseGrpcUrl', () => { expect(parseGrpcUrl(input)).toStrictEqual({ url: expected, enableTls: false, + path: '', }); }); @@ -40,6 +43,7 @@ describe('parseGrpcUrl', () => { expect(parseGrpcUrl(input)).toStrictEqual({ url: '', enableTls: false, + path: '', }); }); }); diff --git a/packages/insomnia/src/network/grpc/parse-grpc-url.ts b/packages/insomnia/src/network/grpc/parse-grpc-url.ts index c40c3156c15..b4aef0df5b2 100644 --- a/packages/insomnia/src/network/grpc/parse-grpc-url.ts +++ b/packages/insomnia/src/network/grpc/parse-grpc-url.ts @@ -2,13 +2,24 @@ export const parseGrpcUrl = (grpcUrl: string): { url: string; enableTls: boolean if (!grpcUrl) { return { url: '', enableTls: false, path: '' }; } - const url = new URL(grpcUrl); + const lcUrl = grpcUrl.toLowerCase(); + let url = { + protocol: 'grpc:', + hostname: lcUrl, + pathname: '', + port: undefined, + } as unknown as URL; + if (lcUrl.includes('://')) { + try { + url = new URL(grpcUrl.toLowerCase()); + } catch (e) { } + } const result = { - url: url.host, + url: `${url.hostname}` + (url.port ? `:${url.port}` : ''), enableTls: false, path: url.pathname, }; - if (url.protocol === 'grpcs:') { + if (url.protocol.toLowerCase() === 'grpcs:') { result.enableTls = true; } if (result.path === '/') {