UNPKG

@atomist/sdm-pack-aspect

Version:

an Atomist SDM Extension Pack for visualizing drift across an organization

47 lines 1.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _ = require("lodash"); const React = require("react"); const utils_1 = require("./utils"); function toRepoListItem(rfd) { const linkToIndividualProjectPage = `/repository?id=${encodeURI(rfd.id)}`; return React.createElement("li", { key: rfd.url }, rfd.showFullPath && `${rfd.owner} / `, rfd.repo, " ", rfd.score && `(${rfd.score.toFixed(2)})`, ":", " ", React.createElement("a", { href: rfd.url }, "Source"), " ", React.createElement("a", { href: linkToIndividualProjectPage }, "Insights")); } function displayProjects(owner, repos, props) { const sorted = _.sortBy(repos, p => props.sortOrder === "score" ? p.score : p.repo.toLowerCase()); return utils_1.collapsible(owner, `${owner} (${repos.length} repositories)`, React.createElement("ul", null, sorted.map(toRepoListItem)), repos.length === 1 || props.expand); } function RepoList(props) { const projectsByOrg = _.groupBy(props.repos, p => p.owner); return React.createElement("div", null, React.createElement("h2", null, Object.entries(projectsByOrg).length, " organizations containing ", " ", props.repos.length, " repositories and ", " ", props.virtualProjectCount, " virtual projects "), props.byOrg ? reposByOrg(props) : reposRanked(props)); } exports.RepoList = RepoList; function reposByOrg(props) { const projectsByOrg = _.groupBy(props.repos, p => p.owner); return React.createElement("ul", null, Object.entries(projectsByOrg).map(kv => displayProjects(kv[0], kv[1], props))); } function reposRanked(props) { return React.createElement("ul", null, displayProjects("Ranked", props.repos, props)); } //# sourceMappingURL=repoList.js.map