1.1.0 • Published 6 years ago

@mediaxpost/mail-template-helper v1.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

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 @mediaxpost/mail-template-helper

Usage

const MailTemplatesHelper = require('@mediaxpost/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 Jay Reardon -- Licensed under the MIT license.

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.0.1

6 years ago