code: function (templateFiles, dataFiles) {
    return templateFiles.reduce(function (templatesMap, template) {
      let templateName = path.parse(template).name;
      // Get data file with the same base name as the template file
      let dataFile = dataFiles.find(function (file) {
        return path.parse(file).name === templateName;
      });
  
      templatesMap[templateName] = promiseAllProps({
        'template': readFile(template, 'utf8'),
        'data': readFile(dataFile, 'utf8')
          // Use passed data fall back to an empty object
          .then(function (data) {
            return JSON.parse(data);
          })
          .catch(function () {
            return {};
          })
      });
  
      return templatesMap;
    }, {});
  }
docs: mapTemplates() returns an object based on passed file path arrays
  mapping template file name as key and promised content of two files
  in an object as value
  
  @param {Array} templateFiles
  @param {Array} dataFiles
  @return {Object} filesMap