UNPKG

kudo

Version:

check someone's code quality in git repository

418 lines (416 loc) 18.5 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for lib/analyse.js</title> <meta charset="utf-8"> <link rel="stylesheet" href="../prettify.css"> <link rel="stylesheet" href="../base.css"> <style type='text/css'> div.coverage-summary .sorter { background-image: url(../sort-arrow-sprite.png); } </style> </head> <body> <div class="header high"> <h1>Code coverage report for <span class="entity">lib/analyse.js</span></h1> <h2> Statements: <span class="metric">92.16% <small>(47 / 51)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Branches: <span class="metric">80.95% <small>(17 / 21)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Functions: <span class="metric">100% <small>(4 / 4)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Lines: <span class="metric">92.16% <small>(47 / 51)</small></span> &nbsp;&nbsp;&nbsp;&nbsp; Ignored: <span class="metric"><span class="ignore-none">none</span></span> &nbsp;&nbsp;&nbsp;&nbsp; </h2> <div class="path"><a href="../index.html">All files</a> &#187; <a href="index.html">lib/</a> &#187; analyse.js</div> </div> <div class="body"> <pre><table class="coverage"> <tr><td class="line-count">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125</td><td class="line-coverage"><span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">7</span> <span class="cline-any cline-yes">5</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">2</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">2</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">10</span> <span class="cline-any cline-yes">10</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">9</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">2</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-yes">3</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">6</span> <span class="cline-any cline-yes">6</span> <span class="cline-any cline-yes">6</span> <span class="cline-any cline-yes">6</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/** * @file 分析有 diff 的行 * @author chris&lt;wfsr@foxmail.com&gt; */ &nbsp; /** * 新文件的标志 * * @const * @type {string} */ 'use strict'; &nbsp; Object.defineProperty(exports, '__esModule', { value: true }); var NEW_FILE_MODE = 'new file mode'; &nbsp; /** * 匹配 diff 中的行数的正则 * * @const * @type {RegExp} */ var CHANGED_LINE_REG = /^@@ \-\d+,\d+ \+(\d+),(\d+) @@/; &nbsp; /** * 是否新增文件 * * @param {string} diffs diff 输出的字符 * @return {boolean} 是否新增加文件的结果 */ var isNewFile = function isNewFile(diffs) { var secondLine = diffs.indexOf('\n'); return diffs.substr(secondLine + 1, NEW_FILE_MODE.length) === NEW_FILE_MODE; }; &nbsp; /** * 从 diff 输出中解释出有改变的行数及适用于 `fecs --lines` 过滤的 range * * @param {string} diffs diff 的输出字符 * @param {boolean} isNew 是否新文件 * @return {Object} 包含变更行数 lines 及 range 的对象 */ function parse(diffs, isNew) { diffs = diffs.slice(diffs.indexOf('@@')).split(/\r?\n/); &nbsp; var lines = 0; var range = []; var line = undefined; var index = undefined; var last = undefined; var section = undefined; &nbsp; function push() { if (!section || !section[0]) { return; } &nbsp; if (section[1]) { <span class="missing-if-branch" title="else path not taken" >E</span>if (section[1] - section[0] &lt; 2) { range.push(section[0]); range.push(section[1]); } else { <span class="cstat-no" title="statement not covered" > range.push('[' + section + ']');</span> } } else { range.push(section[0]); } &nbsp; section.length = 0; } &nbsp; while ((line = diffs.shift()) != null) { var match = line.match(CHANGED_LINE_REG); if (match) { <span class="missing-if-branch" title="if path not taken" >I</span>if (isNew) { <span class="cstat-no" title="statement not covered" > lines = match[2] | 0;</span> <span class="cstat-no" title="statement not covered" > break;</span> } index = match[1] | 0; } else { switch (line[0]) { <span class="branch-0 cbranch-no" title="branch not covered" > case '-':</span> <span class="cstat-no" title="statement not covered" > break;</span> case '+': if (last) { section[1] = index + ''; } else { section = [index + '']; } last = index; lines++; index++; break; default: index++; last = 0; push(); break; } } } &nbsp; <span class="missing-if-branch" title="else path not taken" >E</span>if (section &amp;&amp; section.length) { push(); } &nbsp; return { lines: lines, range: range }; } &nbsp; /** * 从 diff 输出中分析 * * @param {string} diffs diff 的输出 * @return {Object} 包含变更行数 lines 及 range 的对象 */ &nbsp; exports['default'] = function (diffs) { var isNew = isNewFile(diffs); return parse(diffs, isNew); }; &nbsp; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,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QUFDO0FBQ1Isd0JBQUksR0FBRyxDQUFDLENBQUM7QUFDVCx3QkFBSSxFQUFFLENBQUM7QUFDUCwwQkFBTTtBQUFBLGFBQ2I7U0FDSjtLQUNKOztBQUVELFFBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7QUFDM0IsWUFBSSxFQUFFLENBQUM7S0FDVjs7QUFFRCxXQUFPLEVBQUMsS0FBSyxFQUFMLEtBQUssRUFBRSxLQUFLLEVBQUwsS0FBSyxFQUFDLENBQUM7Q0FFekI7Ozs7Ozs7OztxQkFRYyxVQUFVLEtBQUssRUFBRTtBQUM1QixRQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0IsV0FBTyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0NBQzlCIiwiZmlsZSI6ImFuYWx5c2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlIOWIhuaekOaciSBkaWZmIOeahOihjFxuICogQGF1dGhvciBjaHJpczx3ZnNyQGZveG1haWwuY29tPlxuICovXG5cbi8qKlxuICog5paw5paH5Lu255qE5qCH5b+XXG4gKlxuICogQGNvbnN0XG4gKiBAdHlwZSB7c3RyaW5nfVxuICovXG5jb25zdCBORVdfRklMRV9NT0RFID0gJ25ldyBmaWxlIG1vZGUnO1xuXG4vKipcbiAqIOWMuemFjSBkaWZmIOS4reeahOihjOaVsOeahOato+WImVxuICpcbiAqIEBjb25zdFxuICogQHR5cGUge1JlZ0V4cH1cbiAqL1xuY29uc3QgQ0hBTkdFRF9MSU5FX1JFRyA9IC9eQEAgXFwtXFxkKyxcXGQrIFxcKyhcXGQrKSwoXFxkKykgQEAvO1xuXG4vKipcbiAqIOaYr+WQpuaWsOWinuaWh+S7tlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaWZmcyBkaWZmIOi+k+WHuueahOWtl+esplxuICogQHJldHVybiB7Ym9vbGVhbn0gIOaYr+WQpuaWsOWinuWKoOaWh+S7tueahOe7k+aenFxuICovXG5sZXQgaXNOZXdGaWxlID0gZnVuY3Rpb24gKGRpZmZzKSB7XG4gICAgbGV0IHNlY29uZExpbmUgPSBkaWZmcy5pbmRleE9mKCdcXG4nKTtcbiAgICByZXR1cm4gZGlmZnMuc3Vic3RyKHNlY29uZExpbmUgKyAxLCBORVdfRklMRV9NT0RFLmxlbmd0aCkgPT09IE5FV19GSUxFX01PREU7XG59O1xuXG4vKipcbiAqIOS7jiBkaWZmIOi+k+WHuuS4reino+mHiuWHuuacieaUueWPmOeahOihjOaVsOWPiumAgueUqOS6jiBgZmVjcyAtLWxpbmVzYCDov4fmu6TnmoQgcmFuZ2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlmZnMgIGRpZmYg55qE6L6T5Ye65a2X56ymXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzTmV3IOaYr+WQpuaWsOaWh+S7tlxuICogQHJldHVybiB7T2JqZWN0fSDljIXlkKvlj5jmm7TooYzmlbAgbGluZXMg5Y+KIHJhbmdlIOeahOWvueixoVxuICovXG5mdW5jdGlvbiBwYXJzZShkaWZmcywgaXNOZXcpIHtcbiAgICBkaWZmcyA9IGRpZmZzLnNsaWNlKGRpZmZzLmluZGV4T2YoJ0BAJykpLnNwbGl0KC9cXHI/XFxuLyk7XG5cbiAgICBsZXQgbGluZXMgPSAwO1xuICAgIGxldCByYW5nZSA9IFtdO1xuICAgIGxldCBsaW5lO1xuICAgIGxldCBpbmRleDtcbiAgICBsZXQgbGFzdDtcbiAgICBsZXQgc2VjdGlvbjtcblxuICAgIGZ1bmN0aW9uIHB1c2goKSB7XG4gICAgICAgIGlmICghc2VjdGlvbiB8fCAhc2VjdGlvblswXSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNlY3Rpb25bMV0pIHtcbiAgICAgICAgICAgIGlmIChzZWN0aW9uWzFdIC0gc2VjdGlvblswXSA8IDIpIHtcbiAgICAgICAgICAgICAgICByYW5nZS5wdXNoKHNlY3Rpb25bMF0pO1xuICAgICAgICAgICAgICAgIHJhbmdlLnB1c2goc2VjdGlvblsxXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByYW5nZS5wdXNoKCdbJyArIHNlY3Rpb24gKyAnXScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmFuZ2UucHVzaChzZWN0aW9uWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlY3Rpb24ubGVuZ3RoID0gMDtcbiAgICB9XG5cbiAgICB3aGlsZSAoKGxpbmUgPSBkaWZmcy5zaGlmdCgpKSAhPSBudWxsKSB7XG4gICAgICAgIHZhciBtYXRjaCA9IGxpbmUubWF0Y2goQ0hBTkdFRF9MSU5FX1JFRyk7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgaWYgKGlzTmV3KSB7XG4gICAgICAgICAgICAgICAgbGluZXMgPSBtYXRjaFsyXSB8IDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleCA9IG1hdGNoWzFdIHwgMDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAobGluZVswXSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25bMV0gPSBpbmRleCArICcnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbiA9IFtpbmRleCArICcnXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsYXN0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzKys7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgPSAwO1xuICAgICAgICAgICAgICAgICAgICBwdXNoKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNlY3Rpb24gJiYgc2VjdGlvbi5sZW5ndGgpIHtcbiAgICAgICAgcHVzaCgpO1xuICAgIH1cblxuICAgIHJldHVybiB7bGluZXMsIHJhbmdlfTtcblxufVxuXG4vKipcbiAqIOS7jiBkaWZmIOi+k+WHuuS4reWIhuaekFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBkaWZmcyBkaWZmIOeahOi+k+WHulxuICogQHJldHVybiB7T2JqZWN0fSDljIXlkKvlj5jmm7TooYzmlbAgbGluZXMg5Y+KIHJhbmdlIOeahOWvueixoVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoZGlmZnMpIHtcbiAgICBsZXQgaXNOZXcgPSBpc05ld0ZpbGUoZGlmZnMpO1xuICAgIHJldHVybiBwYXJzZShkaWZmcywgaXNOZXcpO1xufVxuIl19</pre></td></tr> </table></pre> </div> <div class="footer"> <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Sep 17 2015 10:53:44 GMT+0800 (CST)</div> </div> <script src="../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../sorter.js"></script> </body> </html>