fix rendering of environment-backed variables

This commit is contained in:
2026-06-30 12:24:10 +02:00
parent b00dee4f10
commit 42b8f337af
2 changed files with 23 additions and 9 deletions
+9 -8
View File
@@ -179,7 +179,7 @@ function parseHttpBlock(text) {
};
}
function formatVariableValue(value) {
function formatVariableValue(value, renderContext = {}) {
if (value === null || value === undefined) {
return '';
}
@@ -188,10 +188,11 @@ function formatVariableValue(value) {
if (value.trim() === '') {
return '';
}
if (/\s/.test(value)) {
return `"${value.replace(/"/g, '\\"')}"`;
const renderedValue = renderContext.renderValue ? renderContext.renderValue(value) : value;
if (/\s/.test(renderedValue)) {
return `"${renderedValue.replace(/"/g, '\\"')}"`;
}
return value;
return renderedValue;
}
return JSON.stringify(value);
@@ -306,7 +307,7 @@ export function mergeRequestConfig(base, updates) {
return merged;
}
function buildRequestContent(request, requestName, requestConfig = {}, dotenvVariables = new Set()) {
export function buildRequestContent(request, requestName, requestConfig = {}, dotenvVariables = new Set()) {
const lines = [];
const variableDefinitions = [];
const commentedVariableDefinitions = [];
@@ -478,7 +479,7 @@ function buildRequestContent(request, requestName, requestConfig = {}, dotenvVar
if (commentedVariableDefinitions.length > 0) {
lines.push(`# Other variables for ${requestName}`);
for (const variable of commentedVariableDefinitions) {
lines.push(`# ${sanitizeVarName(variable.name)} = ${formatVariableValue(variable.value)}`);
lines.push(`# ${sanitizeVarName(variable.name)} = ${formatVariableValue(variable.value, { renderValue })}`);
}
lines.push('');
}
@@ -486,7 +487,7 @@ function buildRequestContent(request, requestName, requestConfig = {}, dotenvVar
if (parameterVariableDefinitions.length > 0) {
lines.push(`# Parameter variables for ${requestName}`);
for (const variable of parameterVariableDefinitions) {
lines.push(`@${sanitizeVarName(variable.name)} = ${formatVariableValue(variable.value)}`);
lines.push(`@${sanitizeVarName(variable.name)} = ${formatVariableValue(variable.value, { renderValue })}`);
}
lines.push('');
}
@@ -524,7 +525,7 @@ function buildRequestContent(request, requestName, requestConfig = {}, dotenvVar
if (variableDefinitions.length > 0) {
lines.push(`# Variables for ${requestName}`);
for (const variable of variableDefinitions) {
lines.push(`@${sanitizeVarName(variable.name)} = ${formatVariableValue(variable.value)}`);
lines.push(`@${sanitizeVarName(variable.name)} = ${formatVariableValue(variable.value, { renderValue })}`);
}
lines.push('');
}