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 accountToken = opts.accountToken || process.env.CODACY_ACCOUNT_TOKEN;
|
8 | var username = opts.username;
|
9 | var projectName = opts.projectName;
|
10 | var commit = opts.commit;
|
11 | var format = opts.format || 'lcov';
|
12 | var pathPrefix = opts.prefix || '';
|
13 | var language = opts.language;
|
14 | var loggerImpl;
|
15 |
|
16 | loggerImpl = logger({
|
17 | verbose: opts.verbose,
|
18 | debug: opts.debug
|
19 | });
|
20 |
|
21 | if (!token && !accountToken) {
|
22 | return Promise.reject(new Error('Token is required'));
|
23 | }
|
24 |
|
25 | if (accountToken) {
|
26 | if (!username) {
|
27 | return Promise.reject(new Error('When using an account token, a username is required.'));
|
28 | }
|
29 | if (!projectName) {
|
30 | return Promise.reject(new Error('When using an account token, a project name is required.'));
|
31 | }
|
32 | }
|
33 |
|
34 | loggerImpl.info(util.format('Handling input for: token [%j], accountToken [%j], username [%j], projectName [%j], commitId [%j], language [%j], endpoint [%j], format [%j], path prefix [%j], verbose [%j], debug [%j]',
|
35 | token, accountToken, username, projectName, commit, language, opts.endpoint, format, pathPrefix, opts.verbose, opts.debug));
|
36 |
|
37 |
|
38 | return Promise.all([parser.getParser(format).parse(pathPrefix, input), getGitData.getCommitId(commit)]).spread(function (parsedCoverage, commitId) {
|
39 |
|
40 | loggerImpl.trace(parsedCoverage);
|
41 | loggerImpl.debug('Sending coverage');
|
42 | return reporter({
|
43 | endpoint: opts.endpoint,
|
44 | accountToken: accountToken
|
45 | }).sendCoverage(token, commitId, language, parsedCoverage, accountToken, username, projectName);
|
46 | });
|
47 | };
|
48 | }(require('./coverageParser'), require('./reporter'), require('./getGitData'), require('./logger'), require('bluebird'), require('util')));
|