From f67b38daf414ec1de884644f5ce0c5ebd243e4e0 Mon Sep 17 00:00:00 2001 From: Simon Backx Date: Fri, 17 Mar 2023 14:10:33 +0100 Subject: [PATCH] Fixed posts and email wrappers in worker threads refs https://ghost.slack.com/archives/C02G9E68C/p1679055933852679 - The posts api is used in the update-check job. This also uses the email wrapper, which needs the email-service - The email service is not initalized in the worker threads, this causes an error - Adds a check, because this part is optional in worker threads --- .../api/endpoints/utils/serializers/output/mappers/emails.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ghost/core/core/server/api/endpoints/utils/serializers/output/mappers/emails.js b/ghost/core/core/server/api/endpoints/utils/serializers/output/mappers/emails.js index a6a5b7576a..1bd9f49697 100644 --- a/ghost/core/core/server/api/endpoints/utils/serializers/output/mappers/emails.js +++ b/ghost/core/core/server/api/endpoints/utils/serializers/output/mappers/emails.js @@ -7,7 +7,8 @@ module.exports = (model, frame) => { // Ensure we're not outputting unwanted replacement strings when viewing email contents // TODO: extract this to a utility, it's duplicated in the email-preview API controller - if (jsonModel.html) { + if (jsonModel.html && emailService.renderer && emailService.service) { + // In worker threads the renderer and servie service are not available, but we don't need to do this, so okay to skip. const replacements = emailService.renderer.buildReplacementDefinitions({html: jsonModel.html, newsletterUuid: 'preview'}); const exampleMember = emailService.service.getDefaultExampleMember();