fix(config): update @pnpm/npm-conf (#8372)

close #6679
This commit is contained in:
Zoltan Kochan
2024-08-03 11:56:36 +02:00
committed by GitHub
parent 09876c931f
commit d20eed33ab
6 changed files with 44 additions and 5 deletions

View File

@@ -0,0 +1,6 @@
---
"@pnpm/config": minor
"pnpm": minor
---
Substitute environment variables in config keys [#6679](https://github.com/pnpm/pnpm/issues/6679).

View File

@@ -20,7 +20,7 @@ export async function readLocalConfig (prefix: string): Promise<LocalConfig> {
for (const [key, val] of Object.entries(config)) {
if (typeof val === 'string') {
try {
config[key] = envReplace(val, process.env)
config[envReplace(key, process.env)] = envReplace(val, process.env)
} catch (err) {
// ignore
}

View File

@@ -0,0 +1 @@
${FOO}=999

View File

@@ -21,6 +21,7 @@ delete process.env.npm_config_virtual_store_dir
delete process.env.npm_config_shared_workspace_lockfile
delete process.env.npm_config_side_effects_cache
delete process.env.npm_config_node_version
delete process.env.npm_config_fetch_retries
const env = {
PNPM_HOME: __dirname,
@@ -987,3 +988,24 @@ test('read PNPM_HOME defined in environment variables', async () => {
process.env = oldEnv
})
test('xxx', async () => {
const oldEnv = process.env
process.env = {
...oldEnv,
FOO: 'fetch-retries',
}
const { config } = await getConfig({
cliOptions: {
dir: f.find('has-env-in-key'),
},
packageManager: {
name: 'pnpm',
version: '1.0.0',
},
})
expect(config.fetchRetries).toBe(999)
process.env = oldEnv
})

16
pnpm-lock.yaml generated
View File

@@ -40,8 +40,8 @@ catalogs:
specifier: ^0.2.1
version: 0.2.1
'@pnpm/npm-conf':
specifier: 2.2.2
version: 2.2.2
specifier: 2.3.0
version: 2.3.0
'@pnpm/npm-lifecycle':
specifier: ^3.0.4
version: 3.0.4
@@ -1295,7 +1295,7 @@ importers:
version: link:../matcher
'@pnpm/npm-conf':
specifier: 'catalog:'
version: 2.2.2
version: 2.3.0
'@pnpm/pnpmfile':
specifier: workspace:*
version: link:../../hooks/pnpmfile
@@ -8492,6 +8492,10 @@ packages:
resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
engines: {node: '>=12'}
'@pnpm/npm-conf@2.3.0':
resolution: {integrity: sha512-DqrO+oXGR7HCuicNy6quk6ALJSDDPKI7RZz1bP5im8mSL8J2e+9w26LdkjuAfpAjOutYUJVbnXnx4IbTQeIgfw==}
engines: {node: '>=12'}
'@pnpm/npm-lifecycle@3.0.4':
resolution: {integrity: sha512-fTzGiezzHeFHmmCZH6pXnii32nv4iNc7ox1DpdA9B00BTakcji33ugVGV2rE4ze6lU6IPOGuJa0NiQHnkuwUUQ==}
engines: {node: '>=18.12'}
@@ -15271,6 +15275,12 @@ snapshots:
'@pnpm/network.ca-file': 1.0.2
config-chain: 1.1.13
'@pnpm/npm-conf@2.3.0':
dependencies:
'@pnpm/config.env-replace': 1.1.0
'@pnpm/network.ca-file': 1.0.2
config-chain: 1.1.13
'@pnpm/npm-lifecycle@3.0.4(typanion@3.14.0)':
dependencies:
'@pnpm/byline': 1.0.0

View File

@@ -46,7 +46,7 @@ catalog:
"@pnpm/logger": ^5.0.0
"@pnpm/network.agent": ^2.0.0
"@pnpm/nopt": ^0.2.1
"@pnpm/npm-conf": 2.2.2
"@pnpm/npm-conf": 2.3.0
"@pnpm/npm-lifecycle": ^3.0.4
"@pnpm/npm-package-arg": ^1.0.0
"@pnpm/os.env.path-extender": ^2.0.0