code: function hierarchy (config) {
    const templates = _.mapValues(config.templates, augmentSingleFile)
    const partials = _.mapValues(config.partials, augmentSingleFile)
    return {
      children: Object.keys(templates).map((name) => {
        let template = templates[name]
        return {
          name: name,
          type: 'template',
          path: template.path,
          comments: template.comments,
          children: template.callsPartial
            .map((callee) => callee.name)
            // Remove redundant names (only take the first one)
            .filter((name, index, array) => array.indexOf(name) === index)
            .map((name) => partialForCallTree(name, partials, {}))
        }
      })
    }
  }
docs: Compute a hierarchy tree of templates and partials calling other partials.
  The return value can be used as input for the 'renderTree'-helper and
  has the form
  
  ```
  [{
  "name": "template1",
  "type": "template",
  "path": "src/tmpl/template1.hbs
  "comments": ["a comment for template1"],
  "children": [
  "name": "partial1",
  "path": "src/prt/partial1.hbs
  "type": "partial",
  "comments": ["a comment for partial 1"],
  "children": []
  ]
  }]
  ```
  
  @param {{templates: object, partials: object}} config
  @return {object}