text: const
    fs = require('fs'),
    handlebars = require('handlebars'),
    handlebarsWax = require('handlebars-wax'),
    addressFormat = require('address-format'),
    moment = require('moment'),
    Swag = require('swag');
  
  Swag.registerHelpers(handlebars);
  
  handlebars.registerHelper({
    removeProtocol: function (url) {
      return url.replace(/.*?:\/\//g, '');
    },
  
    concat: function () {
      let res = '';
  
      for (let arg in arguments) {
        if (typeof arguments[arg] !== 'object') {
          res += arguments[arg];
        }
      }
  
      return res;
    },
  
    formatAddress: function (address, city, region, postalCode, countryCode) {
      let addressList = addressFormat({
        address: address,
        city: city,
        subdivision: region,
        postalCode: postalCode,
        countryCode: countryCode
      });
  
  
      return addressList.join('<br/>');
    },
  
    formatDate: function (date) {
      return moment(date).format('MM/YYYY');
    }
  });
  
  
  function render(resume) {
    let dir = __dirname + '/public',
      css = fs.readFileSync(dir + '/styles/main.css', 'utf-8'),
      resumeTemplate = fs.readFileSync(dir + '/views/resume.hbs', 'utf-8');
  
    let Handlebars = handlebarsWax(handlebars);
  
    Handlebars.partials(dir + '/views/partials/**/*.{hbs,js}');
    Handlebars.partials(dir + '/views/components/**/*.{hbs,js}');
  
    return Handlebars.compile(resumeTemplate)({
      css: css,
      resume: resume
    });
  }
  
  module.exports = {
    render: render
  };
  