diff --git a/src/vs/workbench/api/node/proxyResolver.ts b/src/vs/workbench/api/node/proxyResolver.ts index 98f8979d9958e..0adeeb7182228 100644 --- a/src/vs/workbench/api/node/proxyResolver.ts +++ b/src/vs/workbench/api/node/proxyResolver.ts @@ -19,6 +19,7 @@ import type * as undiciType from 'undici-types'; import type * as tlsType from 'tls'; import type * as streamType from 'stream'; import { lookupKerberosAuthorization } from '../../../platform/request/node/requestService.js'; +import * as proxyAgent from '@vscode/proxy-agent'; const require = createRequire(import.meta.url); const http = require('http'); @@ -90,6 +91,8 @@ export function connectProxyResolver( env: process.env, }; const { resolveProxyWithRequest, resolveProxyURL } = createProxyResolver(params); + const target = (proxyAgent as any).default || proxyAgent; + target.resolveProxyURL = resolveProxyURL; patchGlobalFetch(configProvider, mainThreadTelemetry, initData, resolveProxyURL, params.lookupProxyAuthorization!, getOrLoadAdditionalCertificates.bind(undefined, params), disposables); @@ -348,7 +351,9 @@ function recordFetchFeatureUse(mainThreadTelemetry: MainThreadTelemetryShape, fe function createPatchedModules(params: ProxyAgentParams, resolveProxy: ResolveProxyWithRequest) { function mergeModules(module: any, patch: any) { - return Object.assign(module.default || module, patch); + const target = module.default || module; + target.__vscodeOriginal = Object.assign({}, target); + return Object.assign(target, patch); } return {