solidity-code-metrics
Version:
Solidity Code Metrics
1 lines • 3.71 kB
JavaScript
(()=>{function t(t,e,a){let s={totals:[],avg:[],keys:Object.keys(t.totals.ast).filter((t=>void 0===e||e(t)))};return s.keys.forEach((e=>{a&&t.totals.ast[e],s.totals.push(t.totals.ast[e]||0),s.avg.push(t.avg.ast[e]||0)})),s}window.addEventListener("message",(e=>{const a=e.data;switch(console.log(a),a.command){case"renderReport":s=a.value,l=new showdown.Converter({extensions:["table"]}),document.getElementById("preview").innerHTML=l.makeHtml(s.markdownTemplate),function(e,a){window.chartColors;let s=function(t){console.log(t);let e=t.avg.summary,a=t.totals.summary,s={avg:[],totals:[],keys:Array.from(new Set([...Object.keys(e),...Object.keys(a)]))};return s.keys.forEach((t=>{s.avg.push(e[t]||0),s.totals.push(a[t]||0)})),s}(e);new Chart("chart-risk-summary",{type:"radar",data:{labels:s.keys,datasets:[{data:s.totals,label:"overall",fill:0},{data:s.avg,hidden:!1,label:"average",fill:0}]},options:{maintainAspectRatio:!0,spanGaps:!1,scale:{ticks:{beginAtZero:!0,max:7}},elements:{line:{tension:1e-6}},plugins:{filler:{propagate:!1},"samples-filler-analyser":{target:"chart-analyser"},colorschemes:{scheme:"tableau.Tableau20"}}}});let l=function(t){let e={sloc:[],nsloc:[],keys:Object.keys(t.totals.nsloc).filter((t=>"total"!==t&&"commentToSourceRatio"!==t))};return e.keys.forEach((a=>{e.sloc.push(t.totals.sloc[a]||0),e.nsloc.push(t.totals.nsloc[a]||0)})),e}(e);new Chart("chart-nsloc-total",{type:"pie",data:{labels:l.keys,datasets:[{label:"sloc",data:l.sloc},{label:"normalized sloc",data:l.nsloc}]},options:{plugins:{colorschemes:{scheme:"tableau.Tableau20"}}}});var o=function(t){let e={totals:[],avg:[],keys:Object.keys(t.totals.num)};return e.keys.forEach((a=>{e.totals.push(t.totals.num[a]||0),e.avg.push(t.avg.num[a]||0)})),e}(e),n=(new Chart("chart-num-bar",{type:"bar",data:{labels:o.keys,datasets:[{label:"total",data:o.totals},{label:"average",data:o.avg,hidden:!0}]},options:{responsive:!0,legend:{position:"top"},title:{display:!0,text:"Summary"},scales:{yAxes:[{type:"logarithmic",ticks:{suggestedMin:0,beginAtZero:!0,min:0}}]}}}),t(e,(function(t){return!t.startsWith("FunctionCall:Name:")&&!t.startsWith("AssemblyCall:Name:")}),!0)),i=(new Chart("chart-num-bar-ast",{type:"bar",data:{labels:n.keys,datasets:[{label:"total",data:n.totals},{label:"average",data:n.avg,hidden:!0}]},options:{responsive:!0,legend:{position:"top"},title:{display:!0,text:"AST Elements"},scales:{yAxes:[{type:"logarithmic",ticks:{suggestedMin:0,beginAtZero:!0,min:0}}]}}}),t(e,(function(t){return t.startsWith("FunctionCall:Name:")}),!0)),r=(new Chart("chart-num-bar-ast-funccalls",{type:"bar",data:{labels:i.keys,datasets:[{label:"total",data:i.totals}]},options:{responsive:!0,legend:{position:"top"},title:{display:!0,text:"Function Calls"},scales:{yAxes:[{type:"logarithmic",ticks:{suggestedMin:0,beginAtZero:!0,min:0}}]}}}),t(e,(function(t){return t.startsWith("AssemblyCall:Name:")}),!0));new Chart("chart-num-bar-ast-asmcalls",{type:"bar",data:{labels:r.keys,datasets:[{label:"total",data:r.totals}]},options:{responsive:!0,legend:{position:"top"},title:{display:!0,text:"Assembly Calls"},scales:{yAxes:[{type:"logarithmic",ticks:{suggestedMin:0,beginAtZero:!0,min:0}}]}}})}(s.jsonData,window.chartColors),Object.entries(s.dotGraphs).forEach((t=>{let e=t[0];!function(t,e){var a=d3.select(e).graphviz();let s=d3.transition("startTransition").ease(d3.easeLinear).delay(0).duration(0);a.fade(!0).transition(s).zoomScaleExtent([0,1/0]).zoom(!0).renderDot(t),d3.selectAll(".node,.edge,.cluster")}(t[1],e)})),document.getElementById("loading-msg").style.display="none"}var s,l}),!1),window.onload=function(){"function"==typeof acquireVsCodeApi&&acquireVsCodeApi().postMessage({command:"onPageLoaded"})}})();