GT2/GT2-Android/node_modules/istanbul-api/lib/run-reports.js

54 lines
1.4 KiB
JavaScript

/*
Copyright 2012-2015, Yahoo Inc.
Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
*/
var Reporter = require('./reporter'),
fs = require('fs'),
filesFor = require('./file-matcher').filesFor,
libCoverage = require('istanbul-lib-coverage');
function run(formats, config, opts, callback) {
if (!callback && typeof(opts) === 'function') {
callback = opts;
opts = {};
}
opts = opts || {};
var root,
coverageMap = libCoverage.createCoverageMap(),
includePattern = opts.include || '**/coverage*.raw.json',
reporter = new Reporter(config);
if (!formats || formats.length === 0) {
formats = config.reporting.reports();
}
try {
reporter.addAll(formats);
} catch (ex) {
ex.inputError = true;
return callback(ex);
}
root = opts.root || process.cwd();
filesFor({
root: root,
includes: [ includePattern ]
}, function (err, files) {
/* istanbul ignore if */
if (err) {
return callback(err);
}
files.forEach(function (file) {
var coverageObject = JSON.parse(fs.readFileSync(file, 'utf8'));
coverageMap.merge(coverageObject);
});
reporter.write(coverageMap, {});
return callback();
});
}
module.exports = {
run: run
};