diff --git a/src/models/Config.tsx b/src/models/Config.tsx index 2f5f2eb..4c9fff9 100644 --- a/src/models/Config.tsx +++ b/src/models/Config.tsx @@ -63,11 +63,12 @@ export class Config { /** * Updates the template JSON by adding/updating params from the given environment. * Params are added as "!!! paramName": "@paramName@" placeholder pairs. + * If a param's @placeholder@ already exists in template, it won't be added. * Existing template content is preserved. */ updateTemplateFromEnv(env: Env) { let templateObj: Record = {}; - + // Try to parse existing template as JSON try { if (this.template.content.trim()) { @@ -81,9 +82,15 @@ export class Config { // Add/update params from the environment as placeholders for (const param of env.params) { if (param.name && param.name.trim() !== "") { - const placeholderKey = `!!! ${param.name}`; const placeholderValue = `@${param.name}@`; - templateObj[placeholderKey] = placeholderValue; + + // Check if this placeholder already exists anywhere in the template + const placeholderAlreadyExists = this.template.content.includes(placeholderValue); + + if (!placeholderAlreadyExists) { + const placeholderKey = `!!! ${param.name}`; + templateObj[placeholderKey] = placeholderValue; + } } }