aboutsummaryrefslogtreecommitdiff
path: root/node_modules/istanbul-reports/lib/json
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/istanbul-reports/lib/json')
-rw-r--r--node_modules/istanbul-reports/lib/json/index.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/node_modules/istanbul-reports/lib/json/index.js b/node_modules/istanbul-reports/lib/json/index.js
new file mode 100644
index 0000000..bcae6ae
--- /dev/null
+++ b/node_modules/istanbul-reports/lib/json/index.js
@@ -0,0 +1,44 @@
+/*
+ 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 JsonReport extends ReportBase {
+ constructor(opts) {
+ super();
+
+ this.file = opts.file || 'coverage-final.json';
+ this.first = true;
+ }
+
+ onStart(root, context) {
+ this.contentWriter = context.writer.writeFile(this.file);
+ this.contentWriter.write('{');
+ }
+
+ onDetail(node) {
+ const fc = node.getFileCoverage();
+ const key = fc.path;
+ const cw = this.contentWriter;
+
+ if (this.first) {
+ this.first = false;
+ } else {
+ cw.write(',');
+ }
+ cw.write(JSON.stringify(key));
+ cw.write(': ');
+ cw.write(JSON.stringify(fc));
+ cw.println('');
+ }
+
+ onEnd() {
+ const cw = this.contentWriter;
+ cw.println('}');
+ cw.close();
+ }
+}
+
+module.exports = JsonReport;