aboutsummaryrefslogtreecommitdiff
path: root/node_modules/istanbul-reports/lib/json-summary
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/istanbul-reports/lib/json-summary')
-rw-r--r--node_modules/istanbul-reports/lib/json-summary/index.js48
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;