UNPKG

1.61 kBJavaScriptView Raw
1(function (parser, reporter, getGitData, logger, Promise, util) {
2 'use strict';
3 module.exports = function (input, opts) {
4 opts = opts || {};
5
6 var token = opts.token || process.env.CODACY_PROJECT_TOKEN || process.env.CODACY_REPO_TOKEN;
7 var commit = opts.commit;
8 var format = opts.format || 'lcov';
9 var pathPrefix = opts.prefix || '';
10 var loggerImpl;
11
12 loggerImpl = logger({
13 verbose: opts.verbose,
14 debug: opts.debug
15 });
16
17 if (!token) {
18 return Promise.reject(new Error('Token is required'));
19 }
20
21 loggerImpl.info(util.format('Handling input for: token [%j], commitId [%j], endpoint [%j], format [%j], path prefix [%j], verbose [%j], debug [%j]',
22 token, commit, opts.endpoint, format, pathPrefix, opts.verbose, opts.debug));
23
24 // Parse the coverage data for the given format and retrieve the commit id if we don't have it.
25 return Promise.all([parser.getParser(format).parse(pathPrefix, input), getGitData.getCommitId(commit)]).spread(function (parsedCoverage, commitId) {
26 // Now that we've parse the coverage data to the correct format, send it to Codacy.
27 loggerImpl.trace(parsedCoverage);
28 loggerImpl.debug('Sending coverage');
29 return reporter({
30 endpoint: opts.endpoint
31 }).sendCoverage(token, commitId, parsedCoverage);
32 });
33 };
34}(require('./coverageParser'), require('./reporter'), require('./getGitData'), require('./logger'), require('bluebird'), require('util')));