code: function loadComponentDir (blueprintMeta, originalKey, rootDirPath, includeDocumentation) {
    // Looks weird to differentiate class exports
    const raw = require(rootDirPath)
    const cloned = _.cloneDeep(raw)
    let source
    if (_.keys(raw) === _.keys(cloned)) {
      source = cloned
    } else {
      source = raw
    }
  
    const keyParts = []
    if (hasProperty(blueprintMeta, 'namespace')) {
      keyParts.push(blueprintMeta.namespace)
    }
  
    keyParts.push(hasProperty(source, 'componentName') ? source.componentName : originalKey)
  
    const loaded = {
      key: keyParts.join('_'),
      content: {
        rootDirPath: rootDirPath,
        componentModule: source
      }
    }
  
    if (includeDocumentation) {
      loaded.content.doc = require(path.join(rootDirPath, 'doc'))
    }
  
    return loaded
  }
docs: tryLoadComponentDir