From 53b592476714c64301125997fe473a2ad9645211 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Tue, 28 Jul 2026 02:51:02 +0100 Subject: [PATCH] Refactor parent template handling in TemplateManager - Updated the logic to retrieve and validate the parent template content, ensuring it is correctly fetched and checked for string type. - Improved error logging to provide clearer messages when parent template content is missing or invalid. --- src/templates/templatemanager.js | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/templates/templatemanager.js b/src/templates/templatemanager.js index e262f95..8081f0b 100644 --- a/src/templates/templatemanager.js +++ b/src/templates/templatemanager.js @@ -427,24 +427,37 @@ export class TemplateManager { var templateWithParentContent; + var parentTemplate = documentTemplate.parent; + if (documentTemplate.parent != undefined) { + if (typeof parentTemplate === 'string') { + parentTemplate = await getObject({ + model: documentTemplateModel, + id: parentTemplate, + populate: [ + { path: 'documentSize' }, + { path: 'parent', strictPopulate: false } + ], + cached: true + }); + } // Validate parent content if ( - documentTemplate.parent.content == null || - typeof documentTemplate.parent.content !== 'string' + parentTemplate.content == null || + typeof parentTemplate.content !== 'string' ) { logger.error( 'Parent template content is required and must be a string.', - documentTemplate.parent.content + parentTemplate.content ); return { error: 'Parent template content is required and must be a string.' + - documentTemplate.parent.content + parentTemplate.content }; } templateWithParentContent = await ejs.render( - documentTemplate.parent.content, + parentTemplate.content, { content: templateContent, fc: this.fc }, defaultOptions );