UNPKG

1.68 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 language = opts.language;
11 var loggerImpl;
12
13 loggerImpl = logger({
14 verbose: opts.verbose,
15 debug: opts.debug
16 });
17
18 if (!token) {
19 return Promise.reject(new Error('Token is required'));
20 }
21
22 loggerImpl.info(util.format('Handling input for: token [%j], commitId [%j], language [%j], endpoint [%j], format [%j], path prefix [%j], verbose [%j], debug [%j]',
23 token, commit, language, opts.endpoint, format, pathPrefix, opts.verbose, opts.debug));
24
25 // Parse the coverage data for the given format and retrieve the commit id if we don't have it.
26 return Promise.all([parser.getParser(format).parse(pathPrefix, input), getGitData.getCommitId(commit)]).spread(function (parsedCoverage, commitId) {
27 // Now that we've parse the coverage data to the correct format, send it to Codacy.
28 loggerImpl.trace(parsedCoverage);
29 loggerImpl.debug('Sending coverage');
30 return reporter({
31 endpoint: opts.endpoint
32 }).sendCoverage(token, commitId, language, parsedCoverage);
33 });
34 };
35}(require('./coverageParser'), require('./reporter'), require('./getGitData'), require('./logger'), require('bluebird'), require('util')));