diff options
Diffstat (limited to 'node_modules/istanbul-reports/lib/json-summary')
| -rw-r--r-- | node_modules/istanbul-reports/lib/json-summary/index.js | 56 | 
1 files changed, 56 insertions, 0 deletions
diff --git a/node_modules/istanbul-reports/lib/json-summary/index.js b/node_modules/istanbul-reports/lib/json-summary/index.js new file mode 100644 index 0000000..318a47f --- /dev/null +++ b/node_modules/istanbul-reports/lib/json-summary/index.js @@ -0,0 +1,56 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +'use strict'; +const { ReportBase } = require('istanbul-lib-report'); + +class JsonSummaryReport extends ReportBase { +    constructor(opts) { +        super(); + +        this.file = opts.file || 'coverage-summary.json'; +        this.contentWriter = null; +        this.first = true; +    } + +    onStart(root, context) { +        this.contentWriter = context.writer.writeFile(this.file); +        this.contentWriter.write('{'); +    } + +    writeSummary(filePath, sc) { +        const cw = this.contentWriter; +        if (this.first) { +            this.first = false; +        } else { +            cw.write(','); +        } +        cw.write(JSON.stringify(filePath)); +        cw.write(': '); +        cw.write(JSON.stringify(sc)); +        cw.println(''); +    } + +    onSummary(node) { +        if (!node.isRoot()) { +            return; +        } +        this.writeSummary('total', node.getCoverageSummary()); +    } + +    onDetail(node) { +        this.writeSummary( +            node.getFileCoverage().path, +            node.getCoverageSummary() +        ); +    } + +    onEnd() { +        const cw = this.contentWriter; +        cw.println('}'); +        cw.close(); +    } +} + +module.exports = JsonSummaryReport;  | 
