UNPKG

@gravitywelluk/email-generator

Version:
32 lines (31 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateHTMLEmail = void 0; const debug_1 = require("@gravitywelluk/debug"); const debug = (0, debug_1.createDebug)("EMAILS:PREPARE-EMAIL"); /** * Populate a html template replacing handlebar style values with your named values * * @param htmlTemplate The html string template with params {%param%} * @param emailData The email data to load into the template * * @returns interpolated email string template */ const generateHTMLEmail = (htmlTemplate, emailData) => { debug.info("Preparing email", emailData); let finalTemplate = htmlTemplate; // Matches anything in curly braces with percent symbols {%appUrl%}, {%firstName%} etc. const placeholders = htmlTemplate.match(/\{%(.*?)%\}/g); placeholders === null || placeholders === void 0 ? void 0 : placeholders.forEach(placeholder => { const placeholderKey = placeholder.substring(2, placeholder.length - 2); const replacement = emailData[placeholderKey]; if (!replacement) { throw new Error(`${placeholder} is required`); } if (replacement) { finalTemplate = finalTemplate.replace(placeholder, replacement); } }); return finalTemplate; }; exports.generateHTMLEmail = generateHTMLEmail;