@outofsync/mail-template-helper

1.1.1 • Public • Published

mail-template-helper

NPM

Actual version published on npm Travis build status Total npm module downloads Package Quality Codacy Badge Codacy Coverage  Badge Dependencies badge

mail-template-helper is a helper module to assist with compilation of email templates.

Installation

npm install @outofsync/mail-template-helper

Usage

const MailTemplatesHelper = require('@outofsync/mail-template-helper');

const templates = {
  ['Test2']: {
    subject: '{testData1} {testData2}',
    template: '{bodyData} - {testData2} -- {embedded.value}'
  }
};

const mailTemplateHelper = new MailTemplatesHelper(templates);

console.log(mailTemplateHelper.getFilledTemplate('Test2', {
  testData1: 'a',
  testData2: 'b',
  bodyData: 'test',
  embedded: {
    value: 'qwerty'
  }
}));

API Reference

MailTemplatesHelper constructor(templates) ⟾ instanceof MailTemplatesHelper

Create an instance of MailTemplatesHelper with the templates collection provided.

MailTemplatesHelper.getTemplate(templateName) ⟾ object(mail template) / null

Returns the template with the templateName provided or null if the template does not exist

MailTemplatesHelper.getFilledSubject(templateName, data) ⟾ string / null

Returns the template subject from the templateName provided, using the data to fill any {} placeholders, or null if no template by that name exists.

MailTemplatesHelper.getFilledBody(templateName, data) ⟾ string / null

Returns the template body from the templateName provided, using the data to fill any {} placeholders, or null if no template by that name exists.

MailTemplatesHelper.getCustomFilled(template, data) ⟾ string / null

Returns custom template filled using the data to fill any {} placeholders, or null if the template is null or undefined

Templates and Collections

Template

A template is just a string with {} placeholders for data in data dictionary. The placeholders can reference nested data objects and array indices.

const template = 'This is a template with { data }. Hello { name }.';

Mail Template

A mail template is an object which contains two template strings labelled body and subject.

const mailTemplate = {
  subject: 'Mail Subject -- { data1 }',
  body: 'This is a template with { data }. Hello { name }.'
};

Template Collection

A template collection is an object with named indices which each contain a Mail Template.

const templates = {
  ['Test1']: {
    subject: 'Mail Subject -- { data1 }',
    body: 'This is a template with { data }. Hello { name }.'
  },
  ['Test2']: {
    subject: 'Mail Subject -- { data1 }',
    body: 'This is a template with { data }. Hello { name }.'
  }
};

License

Copyright (c) 2018, 2019 Jay Reardon Copyright (c) 2019 Out of Sync Studios LLC -- Licensed under the MIT license.

Package Sidebar

Install

npm i @outofsync/mail-template-helper

Weekly Downloads

2

Version

1.1.1

License

MIT

Unpacked Size

20.8 kB

Total Files

9

Last publish

Collaborators

  • skycoop
  • chronosis