code: function readFileTree(src, prefix, options) {
    const fileTree = {};
    return readFiles(src.glob, options).then(fileData => {
      fileData.forEach(itemFile => {
        const fileKeys = relativePathArray(itemFile.path, src.basedir);
        itemFile.id = resourceId(itemFile, src.basedir, prefix.plural);
        itemFile.resourceType = prefix.singular;
        deepObj(fileKeys, fileTree)[resourceKey(itemFile)] = parseLocalData(
          itemFile,
          options
        );
      });
      return fileTree;
    });
  }
docs: Read the files from a glob, but then instead of resolving the
  Promise with an Array of objects (@see readFiles), resolve with a
  single tree object. Keys are filenames without extensions.
  @example readFileTree(glob, 'pages', {...}) where the following
  file structure matches:
  pages
  ├── components.html
  ├── index.html
  └── subfolder
  └── subpage.md
  
  Would result in an object structured:
  { components: { [file data]},
  index: { [file data]}
  subfolder: {
  subpage: { [file data]}
  }
  
  @param {Object} src    Object with properties `glob` and `basedir`
  @see defaults
  @param {String} prefix Key to prefix items in this object with when creating
  ids. e.g. 'patterns', 'pages'
  @param {Object} options
  @return {Promise} resolving to {Object} of keyed file contents