endpoints/endpoints

View on GitHub
src/request-handler/lib/collapse_include.js

Summary

Maintainability
A
3 hrs
Test Coverage
export default function (includes) {
  let memo = {};
  return includes.map(function(include) {
    return include.split('.');
  }).sort(function(a, b) {
    return b.length - a.length;
  }).reduce(function(result, parts) {
    let item;
    let i = parts.length + 1;
    while (--i) {
      item = parts.slice(0, i).join('.');
      if (!memo[item]) {
        memo[item] = true;
        if (i === parts.length) {
          result.push(item);
        }
      }
    }
    return result;
  }, []);
}