UNPKG

@hygiene/cli

Version:

Keep your TODOs and FIXMEs healthy

333 lines (332 loc) 11.7 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for src/command/run.ts</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../prettify.css" /> <link rel="stylesheet" href="../../base.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type='text/css'> .coverage-summary .sorter { background-image: url(../../sort-arrow-sprite.png); } </style> </head> <body> <div class='wrapper'> <div class='pad1'> <h1> <a href="../../index.html">All files</a> / <a href="index.html">src/command</a> run.ts </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">0% </span> <span class="quiet">Statements</span> <span class='fraction'>0/36</span> </div> <div class='fl pad1y space-right2'> <span class="strong">0% </span> <span class="quiet">Branches</span> <span class='fraction'>0/12</span> </div> <div class='fl pad1y space-right2'> <span class="strong">0% </span> <span class="quiet">Functions</span> <span class='fraction'>0/7</span> </div> <div class='fl pad1y space-right2'> <span class="strong">0% </span> <span class="quiet">Lines</span> <span class='fraction'>0/35</span> </div> </div> </div> <div class='status-line low'></div> <pre><table class="coverage"> <tr><td class="line-count quiet">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</td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</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-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-no">&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-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</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-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-no">&nbsp;</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-no">&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-no">&nbsp;</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-neutral">&nbsp;</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-no">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</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-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-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</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-no">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-no">&nbsp;</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-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-no">&nbsp;</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-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-no">&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></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { readFile, exists } from "fs";</span> <span class="cstat-no" title="statement not covered" >import { promisify } from "util";</span> <span class="cstat-no" title="statement not covered" >import { relative } from "path";</span> <span class="cstat-no" title="statement not covered" >import ignore from "ignore";</span> <span class="cstat-no" title="statement not covered" >import pick from "lodash/pick";</span> <span class="cstat-no" title="statement not covered" >import flow from "lodash/flow";</span> <span class="cstat-no" title="statement not covered" >import {</span> combineParsers, parseFiles, filterExpired, Plugin } from "@hygiene/core"; <span class="cstat-no" title="statement not covered" >import * as reporters from "../reporter";</span> &nbsp; export interface Options { json: boolean; glob: string; ignorePattern?: string; ignorePath: string; ignore: boolean; } &nbsp; const readFileAsync = <span class="cstat-no" title="statement not covered" >promisify(readFile);</span> const existsAsync = <span class="cstat-no" title="statement not covered" >promisify(exists);</span> &nbsp; export const <span class="cstat-no" title="statement not covered" >createFilter = <span class="fstat-no" title="function not covered" >async</span> ({</span> ignorePattern, ignorePath, cwd }: { ignorePattern?: string; ignorePath: string; cwd: string; }) =&gt; { const blacklist = <span class="cstat-no" title="statement not covered" >ignore();</span> <span class="cstat-no" title="statement not covered" > if (ignorePath) {</span> <span class="cstat-no" title="statement not covered" > if (await existsAsync(ignorePath)) {</span> // TODO: Verbose logging <span class="cstat-no" title="statement not covered" > blacklist.add(await readFileAsync(ignorePath, "utf8"));</span> } else { // TODO: Verbose logging } } <span class="cstat-no" title="statement not covered" > if (ignorePattern) {</span> // TODO: Verbose logging <span class="cstat-no" title="statement not covered" > blacklist.add(ignorePattern);</span> } &nbsp; // https://www.npmjs.com/package/ignore#1-pathname-should-be-a-pathrelative-d-pathname <span class="cstat-no" title="statement not covered" > return flow(</span> <span class="fstat-no" title="function not covered" > (p</span>ath: string) =&gt; <span class="cstat-no" title="statement not covered" >relative(cwd, path),</span> <span class="fstat-no" title="function not covered" > (p</span>ath: string) =&gt; { <span class="cstat-no" title="statement not covered" > try {</span> <span class="cstat-no" title="statement not covered" > return !blacklist.ignores(path);</span> } catch (e) { <span class="cstat-no" title="statement not covered" > if (e.message.includes("relative")) {</span> <span class="cstat-no" title="statement not covered" > return true;</span> } &nbsp; <span class="cstat-no" title="statement not covered" > throw e;</span> } } ); }; &nbsp; export const <span class="cstat-no" title="statement not covered" >run = <span class="fstat-no" title="function not covered" >({</span> plugins }: { plugins: Plugin&lt;any, any&gt;[] }) =&gt; <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async</span> (</span></span> argv: Options ) =&gt; { const { glob, json, ignore, ignorePattern, ignorePath } = <span class="cstat-no" title="statement not covered" >argv;</span> &nbsp; const bodyParser = <span class="cstat-no" title="statement not covered" >combineParsers(...plugins);</span> const report = <span class="cstat-no" title="statement not covered" >json ? reporters.json : reporters.text;</span> const filter = <span class="cstat-no" title="statement not covered" >ignore</span> ? await createFilter({ ignorePattern, ignorePath, cwd: process.cwd() }) : <span class="fstat-no" title="function not covered" >() </span>=&gt; <span class="cstat-no" title="statement not covered" >true;</span> const pluginConfigs = <span class="cstat-no" title="statement not covered" >plugins.map(<span class="fstat-no" title="function not covered" >plugin</span> =&gt;</span> <span class="cstat-no" title="statement not covered" > pick(argv, Object.keys(plugin.getConfigDefinition()))</span> ); &nbsp; const comments = <span class="cstat-no" title="statement not covered" >await parseFiles(glob, bodyParser, {</span> filter }); const expiredComments = <span class="cstat-no" title="statement not covered" >await filterExpired(comments, plugins, pluginConfigs);</span> <span class="cstat-no" title="statement not covered" > return report(expiredComments, plugins, pluginConfigs);</span> }; &nbsp;</pre></td></tr> </table></pre> <div class='push'></div><!-- for sticky footer --> </div><!-- /wrapper --> <div class='footer quiet pad2 space-top1 center small'> Code coverage generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sun Dec 30 2018 20:35:00 GMT+0900 (JST) </div> </div> <script src="../../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../../sorter.js"></script> </body> </html>