@atomist/sdm-pack-aspect
Version:
an Atomist SDM Extension Pack for visualizing drift across an organization
47 lines • 1.92 kB
JavaScript
;
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