From 944d3fa82e29f3469b1aeeab2c4b191f05cc7d7e Mon Sep 17 00:00:00 2001 From: enyineer Date: Fri, 10 Oct 2025 09:50:35 +0200 Subject: [PATCH] Bootstrap Proxy agent if proxy configured Signed-off-by: enyineer --- packages/create-app/src/lib/tasks.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/create-app/src/lib/tasks.ts b/packages/create-app/src/lib/tasks.ts index 230590e99c..327094f7cd 100644 --- a/packages/create-app/src/lib/tasks.ts +++ b/packages/create-app/src/lib/tasks.ts @@ -14,6 +14,8 @@ * limitations under the License. */ +maybeBootstrapProxy(); + import chalk from 'chalk'; import fs from 'fs-extra'; import handlebars from 'handlebars'; @@ -30,6 +32,26 @@ import { packageVersions } from './versions'; import { promisify } from 'util'; import os from 'os'; +function maybeBootstrapProxy() { + // see https://www.npmjs.com/package/global-agent + const globalAgentNamespace = + process.env.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE ?? 'GLOBAL_AGENT_'; + if ( + process.env[`${globalAgentNamespace}HTTP_PROXY`] || + process.env[`${globalAgentNamespace}HTTPS_PROXY`] + ) { + const globalAgent = + require('global-agent') as typeof import('global-agent'); + globalAgent.bootstrap(); + } + + if (process.env.HTTP_PROXY || process.env.HTTPS_PROXY) { + const { setGlobalDispatcher, EnvHttpProxyAgent } = + require('undici') as typeof import('undici'); + setGlobalDispatcher(new EnvHttpProxyAgent()); + } +} + const TASK_NAME_MAX_LENGTH = 14; const TEN_MINUTES_MS = 1000 * 60 * 10; const exec = promisify(execCb);