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 === '/') {