2025-04-01 10:38:02 +09:00

23 lines
977 B
TypeScript

import { now } from 'lodash';
export function ensureDefine(templateName: string, templateContent: string): string {
// notification template content must be wrapped in {{ define "name" }} tag,
// but this is not obvious because user also has to provide name separately in the form.
// so if user does not manually add {{ define }} tag, we do it automatically
let content = templateContent.trim();
if (!content.match(/\{\{\s*define/)) {
const indentedContent = content
.split('\n')
.map((line) => ' ' + line)
.join('\n');
content = `{{ define "${templateName}" }}\n${indentedContent}\n{{ end }}`;
}
return content;
}
export function updateDefinesWithUniqueValue(templateContent: string): string {
const getNewValue = (match_: string, originalDefineName: string) => {
return `{{ define "${originalDefineName}_NEW_${now()}" }}`;
};
return templateContent.replace(/\{\{\s*define\s*\"(?<defineName>.*)\"\s*\}\}/g, getNewValue);
}