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.js56
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;