code: function augment (config) {
    let augmentedTemplates = _.mapValues(config.templates, augmentSingleFile)
    let augmentedPartials = _.mapValues(config.partials, augmentSingleFile)
    // Prepare caller array in each partial
    _.forEachValue(augmentedPartials, (file) => { file.calledBy = [] })
    ;[augmentedTemplates, augmentedPartials].forEach((obj) => {
      _.forEachValue(obj, (file, name) => {
        file.callsPartial.forEach((callee) => {
          // @partial-block calls need to be ignored, because when building the call-hierarchy,
          // the partial-blocks are "unknown" partials. Partial-blocks actually are part of the
          // parent partial, so they should not be shown in the hierarchy
          if (callee.name === '@partial-block') {
            return
          }
          let partial = augmentedPartials[callee.name]
          if (!partial) {
            throw new Error(`Missing partial "${callee.name}"`)
          }
          partial.calledBy.push({
            name: name,
            path: file.path,
            type: augmentedPartials === obj ? 'partial' : 'template',
            line: callee.line
          })
        })
      })
    })
    return {
      templates: augmentedTemplates,
      partials: augmentedPartials
    }
  }
docs: Augment a whole customize-engine-handlebars configuration (templates and partials)
  by adding comment, callers and callees
  @param {{templates: object, partials: object}} config