UNPKG

@atomist/sdm-pack-aspect

Version:

an Atomist SDM Extension Pack for visualizing drift across an organization

82 lines 3.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const codeMetrics_1 = require("../lib/aspect/common/codeMetrics"); const utils_1 = require("./utils"); function RepoExplorer(props) { return React.createElement("div", null, React.createElement("h1", null, props.repo.repoRef.owner, " / ", React.createElement("a", { href: props.repo.repoRef.url }, props.repo.repoRef.repo)), displayWeightedScores(props.repo.weightedScore), displayTags(props), displayCodeMetrics(props), displayAspects(props), displayRawFingerprints(props), displayResources(props)); } exports.RepoExplorer = RepoExplorer; function displayRawFingerprints(props) { return utils_1.collapsible("raw-fp", "Raw Fingerprints", React.createElement("pre", null, JSON.stringify(props.repo.analysis.fingerprints, undefined, 2)), false); } function displayResources(props) { return utils_1.collapsible("Resources", "Resources", React.createElement("ul", null, React.createElement("li", null, "Source - ", React.createElement("a", { href: props.repo.repoRef.url, target: "_blank" }, props.repo.repoRef.url)), React.createElement("li", null, React.createElement("a", { href: props.repo.repoRef.cloneUrl(undefined) }, "Clone URL"), " - ", props.repo.repoRef.cloneUrl(undefined))), true); } function displayWeightedScores(weightedScore) { return utils_1.collapsible("weightedScores", `Score: ${weightedScore.weightedScore.toFixed(2)} / 5`, React.createElement("ul", null, Object.getOwnPropertyNames(weightedScore.weightedScores).map(name => { const score = weightedScore.weightedScores[name]; return React.createElement("li", null, React.createElement("b", null, score.name), ": ", score.score.toFixed(2), " (x", score.weighting, ") - ", score.reason); })), true); } function displayAspects(props) { return utils_1.collapsible("aspects", "Aspects", React.createElement("ul", null, props.aspects.map(displayAspect)), true); } function displayAspect(feature) { return React.createElement("li", null, utils_1.collapsible("aspects", feature.aspect.displayName, React.createElement("ul", null, feature.fingerprints.map(displayFingerprint)), true)); } function displayTags(props) { return utils_1.collapsible("tags", "Tags", React.createElement("ul", null, props.repo.tags.map(displayTag)), true); } function displayTag(tag) { return React.createElement("li", null, React.createElement("b", null, tag.name), " - ", tag.description); } function displayFingerprint(fingerprint) { return React.createElement("li", { style: fingerprint.style, key: fingerprint.displayName }, React.createElement("i", null, fingerprint.displayName), ": ", fingerprint.displayValue, " ", " ", fingerprint.idealDisplayString && `(Ideal: ${fingerprint.idealDisplayString})`); } function displayCodeMetrics(props) { const cmf = props.repo.analysis.fingerprints.find(codeMetrics_1.isCodeMetricsFingerprint); if (!cmf) { return React.createElement("div", null); } return utils_1.collapsible("languages", "Languages", React.createElement("ul", null, cmf.data.languages.map(lang => { return React.createElement("li", { key: "lang_" + lang }, React.createElement("b", null, lang.language.name), ": ", lang.total); })), true); } //# sourceMappingURL=repository.js.map