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);