UNPKG

908 BJavaScriptView Raw
1'use strict';
2var path = require('path');
3
4function loadReporter(reporter) {
5 if (typeof reporter === 'function') {
6 return reporter;
7 }
8
9 if (typeof reporter !== 'string') {
10 return;
11 }
12
13 var rpt = path.join(__dirname, './reporters', reporter);
14 try {
15 // own library reporter
16 return loadReporter(require(rpt));
17 } catch (err) {}
18 try {
19 // external lib reporter
20 return loadReporter(require(reporter));
21 } catch (err) {}
22}
23
24function useReporter(comments, config) {
25 config = config || {};
26 var reporter = config.reporter || 'raw';
27 var reporterFn = loadReporter(reporter);
28 if (typeof reporterFn !== 'function') {
29 throw new Error('Cannot find reporter: ' + reporter);
30 }
31
32 delete config.reporter;
33 return reporterFn(comments, config);
34}
35
36exports.loadReporter = loadReporter;
37exports.reporter = useReporter;