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