From 8d29f0c03943c63be164339be67c9f1dc0daaa24 Mon Sep 17 00:00:00 2001 From: Johan Nyman Date: Thu, 21 Mar 2024 08:20:56 +0100 Subject: [PATCH] fix: filter out potential '--' from argv to get yargs to play nice --- shared/packages/api/src/config.ts | 34 ++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/shared/packages/api/src/config.ts b/shared/packages/api/src/config.ts index 46941fce..f68dbab4 100644 --- a/shared/packages/api/src/config.ts +++ b/shared/packages/api/src/config.ts @@ -307,7 +307,7 @@ export interface WorkforceConfig { export async function getWorkforceConfig(): Promise { const argv = await Promise.resolve( - yargs(process.argv.slice(2)).options({ + yargs(getProcessArgv()).options({ ...workforceArguments, ...processOptions, }).argv @@ -335,7 +335,7 @@ export interface HTTPServerConfig { } export async function getHTTPServerConfig(): Promise { const argv = await Promise.resolve( - yargs(process.argv.slice(2)).options({ + yargs(getProcessArgv()).options({ ...httpServerArguments, ...processOptions, }).argv @@ -378,7 +378,7 @@ export interface PackageManagerConfig { } export async function getPackageManagerConfig(): Promise { const argv = await Promise.resolve( - yargs(process.argv.slice(2)).options({ + yargs(getProcessArgv()).options({ ...packageManagerArguments, ...processOptions, }).argv @@ -419,7 +419,7 @@ export interface WorkerConfig { } export async function getWorkerConfig(): Promise { const argv = await Promise.resolve( - yargs(process.argv.slice(2)).options({ + yargs(getProcessArgv()).options({ ...workerArguments, ...processOptions, }).argv @@ -450,7 +450,7 @@ export interface AppContainerProcessConfig { } export async function getAppContainerConfig(): Promise { const argv = await Promise.resolve( - yargs(process.argv.slice(2)).options({ + yargs(getProcessArgv()).options({ ...appContainerArguments, ...processOptions, }).argv @@ -520,7 +520,7 @@ export async function getSingleAppConfig(): Promise { // @ts-expect-error not optional delete options.port - const argv = await Promise.resolve(yargs(process.argv.slice(2)).options(options).argv) + const argv = await Promise.resolve(yargs(getProcessArgv()).options(options).argv) return { process: getProcessConfig(argv), @@ -551,7 +551,7 @@ export interface QuantelHTTPTransformerProxyConfig { } export async function getQuantelHTTPTransformerProxyConfig(): Promise { const argv = await Promise.resolve( - yargs(process.argv.slice(2)).options({ + yargs(getProcessArgv()).options({ ...quantelHTTPTransformerProxyConfigArguments, ...processOptions, }).argv @@ -573,3 +573,23 @@ export async function getQuantelHTTPTransformerProxyConfig(): Promise(opts: O): O { return opts } + +function getProcessArgv() { + // Note: process.argv typically looks like this: + // [ + // 'C:\\Program Files\\nodejs\\node.exe', + // 'C:\\path\\to\\my\\package-manager\\apps\\single-app\\app\\dist\\index.js', + // '--', + // '--watchFiles=true', + // '--noCore=true', + // '--logLevel=debug' + // ] + + // Remove the first two arguments + let args = process.argv.slice(2) + + // If the first argument is just '--', remove it: + if (args[0] === '--') args = args.slice(1) + + return args +}