From 93a2dac0639382d12ac0a8efb34cd2436258cc6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=A4=95=E0=A4=BE=E0=A4=B0=E0=A4=A4=E0=A5=8B=E0=A4=AB?= =?UTF-8?q?=E0=A5=8D=E0=A4=AB=E0=A5=87=E0=A4=B2=E0=A4=B8=E0=A5=8D=E0=A4=95?= =?UTF-8?q?=E0=A5=8D=E0=A4=B0=E0=A4=BF=E0=A4=AA=E0=A5=8D=E0=A4=9F=E2=84=A2?= Date: Thu, 2 Feb 2023 15:34:29 +0100 Subject: [PATCH] fix(core): Fix env file config loading (no-changelog) (#5339) * fix(core): Do not trim config values read from files (no-changelog) * do not use config.load. it does not work --- packages/cli/src/config/index.ts | 42 ++++++++++++++------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/packages/cli/src/config/index.ts b/packages/cli/src/config/index.ts index 3804ab2b0..a797125c1 100644 --- a/packages/cli/src/config/index.ts +++ b/packages/cli/src/config/index.ts @@ -44,33 +44,27 @@ if (!inE2ETests && !inTest) { } // Overwrite config from files defined in "_FILE" environment variables - const overwrites = Object.entries(process.env).reduce>( - (acc, [envName, fileName]) => { - if (envName.endsWith('_FILE') && fileName) { - const configEnvName = envName.replace(/_FILE$/, ''); - // @ts-ignore - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - const key = config._env[configEnvName]?.[0] as string; - if (key) { - let value: string; - try { - value = readFileSync(fileName, 'utf8').trim(); - } catch (error) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - if (error.code === 'ENOENT') { - throw new Error(`The file "${fileName}" could not be found.`); - } - throw error; + Object.entries(process.env).forEach(([envName, fileName]) => { + if (envName.endsWith('_FILE') && fileName) { + const configEnvName = envName.replace(/_FILE$/, ''); + // @ts-ignore + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + const key = config._env[configEnvName]?.[0] as string; + if (key) { + let value: string; + try { + value = readFileSync(fileName, 'utf8'); + } catch (error) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + if (error.code === 'ENOENT') { + throw new Error(`The file "${fileName}" could not be found.`); } - console.debug('Loading config overwrite', { fileName }); - acc[key] = value; + throw error; } + config.set(key, value); } - return acc; - }, - {}, - ); - config.load(overwrites); + } + }); } config.validate({