diff options
Diffstat (limited to 'node_modules/istanbul-reports/lib/json-summary')
-rw-r--r-- | node_modules/istanbul-reports/lib/json-summary/index.js | 48 |
1 files changed, 48 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 000000000..7f50d387c --- /dev/null +++ b/node_modules/istanbul-reports/lib/json-summary/index.js @@ -0,0 +1,48 @@ +/* + Copyright 2012-2015, Yahoo Inc. + Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +"use strict"; + +function JsonSummaryReport(opts) { + this.file = opts.file || 'coverage-summary.json'; + this.contentWriter = null; + this.first = true; +} + +JsonSummaryReport.prototype.onStart = function (root, context) { + this.contentWriter = context.writer.writeFile(this.file); + this.contentWriter.write("{"); +}; + +JsonSummaryReport.prototype.writeSummary = function (filePath, sc) { + var 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(""); +}; + +JsonSummaryReport.prototype.onSummary = function (node) { + if (!node.isRoot()) { + return; + } + this.writeSummary("total", node.getCoverageSummary()); +}; + +JsonSummaryReport.prototype.onDetail = function (node) { + this.writeSummary(node.getFileCoverage().path, node.getCoverageSummary()); +}; + +JsonSummaryReport.prototype.onEnd = function () { + var cw = this.contentWriter; + cw.println("}"); + cw.close(); +}; + +module.exports = JsonSummaryReport; |