{"size": 551, "ext": "js", "max_stars_repo_path": "src/server/services/projectFormationService/lib/teamFormationPlan.js", "max_stars_repo_name": "eastnorthwest/echo", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "src/server/services/projectFormationService/lib/teamFormationPlan.js", "max_issues_repo_name": "eastnorthwest/echo", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "src/server/services/projectFormationService/lib/teamFormationPlan.js", "max_forks_repo_name": "eastnorthwest/echo", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 27.55, "max_line_length": 84, "alphanum_fraction": 0.6914700544}
import {
  flatten,
  unique,
} from './util'

export function teamFormationPlanToString(plan) {
  return plan.teams.map(({goalDescriptor, teamSize, memberIds}) => {
    const memberIdPrefixes = memberIds.map(id => id.slice(0, 7))
    const goalDescriptorSuffix = goalDescriptor.split('/').pop()

    return `(${goalDescriptorSuffix}:${teamSize})[${memberIdPrefixes.sort() || ''}]`
  }).join(', ')
}

export function getAssignedMemberIds(teamFormationPlan) {
  return unique(flatten(
    teamFormationPlan.teams.map(({memberIds}) => memberIds)
  ))
}
