diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f3a0fd3ffa..274f101ba95 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -92,8 +92,14 @@ jobs: (npm run oa version-manager set 4.3.1 && npm run oa version | grep -q '4.3.1') || exit 1 test -f ~/my/storage/4.3.1.jar || exit 1 npm run oa:generate && mkdir ./foo && cd ./foo && npm run oa:generate - -# release: + #- name: Test with HTTP proxy + # run: | + # cd ./examples + # yarn global add json && export PATH="$(yarn global bin):$PATH" + # yarn cache clean && yarn add $GITHUB_WORKSPACE/package.tgz + # export HTTP_PROXY=http://proxy_ip:proxy_port + # npm run oa generate -- -g ruby -i https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -o $GITHUB_WORKSPACE/tmp/ruby-client +# rel#ease: # if: github.event.pull_request.merged == 'true' # name: Release (Dry) # # needs: e2e # DONT FORGET TO ENABLE ME !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! diff --git a/apps/generator-cli/jest.config.ts b/apps/generator-cli/jest.config.ts index 9c6e331269a..4b87a86e6af 100644 --- a/apps/generator-cli/jest.config.ts +++ b/apps/generator-cli/jest.config.ts @@ -4,9 +4,12 @@ export default { preset: '../../jest.preset.js', testEnvironment: 'node', transform: { - '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }], + '^.+\\.[cm]?[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }], }, - moduleFileExtensions: ['ts', 'js', 'html'], + transformIgnorePatterns: [ + 'node_modules/(?!(proxy-agent|agent-base|http-proxy-agent|https-proxy-agent|pac-proxy-agent|socks-proxy-agent|proxy-from-env)/)', + ], + moduleFileExtensions: ['ts', 'js', 'mjs', 'cjs', 'html'], coverageDirectory: '../../coverage/apps/generator-cli', // snapshotFormat: { escapeString: true, printBasicPrototype: true }, }; diff --git a/apps/generator-cli/src/app/app.module.ts b/apps/generator-cli/src/app/app.module.ts index 250f80241d4..50787621e92 100644 --- a/apps/generator-cli/src/app/app.module.ts +++ b/apps/generator-cli/src/app/app.module.ts @@ -1,6 +1,7 @@ import { Inject, Module, OnApplicationBootstrap } from '@nestjs/common'; import { HttpModule, HttpModuleOptions } from '@nestjs/axios'; import { Command } from 'commander'; +import { ProxyAgent } from 'proxy-agent'; import { COMMANDER_PROGRAM, LOGGER } from './constants'; import { VersionManagerController } from './controllers/version-manager.controller'; @@ -15,19 +16,16 @@ import { const hasHttpProxyEnvs = process.env.HTTP_PROXY || process.env.http_proxy; const hasHttpsProxyEnvs = process.env.HTTPS_PROXY || process.env.https_proxy; const httpModuleConfig: HttpModuleOptions = {}; +const proxyAgent = new ProxyAgent(); if (hasHttpProxyEnvs) { httpModuleConfig.proxy = false; - // eslint-disable-next-line @typescript-eslint/no-var-requires - const ProxyAgent = require('proxy-agent').default ?? require('proxy-agent'); - httpModuleConfig.httpAgent = new ProxyAgent(); + httpModuleConfig.httpAgent = proxyAgent; } if (hasHttpsProxyEnvs) { httpModuleConfig.proxy = false; - // eslint-disable-next-line @typescript-eslint/no-var-requires - const ProxyAgent = require('proxy-agent').default ?? require('proxy-agent'); - httpModuleConfig.httpsAgent = new ProxyAgent(); + httpModuleConfig.httpsAgent = proxyAgent; } @Module({ diff --git a/apps/generator-cli/src/proxy-agent.d.ts b/apps/generator-cli/src/proxy-agent.d.ts new file mode 100644 index 00000000000..7a16b84289b --- /dev/null +++ b/apps/generator-cli/src/proxy-agent.d.ts @@ -0,0 +1,6 @@ +declare module 'proxy-agent' { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const ProxyAgent: new (...args: any[]) => any; + export default ProxyAgent; + export { ProxyAgent }; +}