1 | 'use strict';
|
2 | var path = require('path');
|
3 |
|
4 | function 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 |
|
16 | return loadReporter(require(rpt));
|
17 | } catch (err) {}
|
18 | try {
|
19 |
|
20 | return loadReporter(require(reporter));
|
21 | } catch (err) {}
|
22 | }
|
23 |
|
24 | function 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 |
|
36 | exports.loadReporter = loadReporter;
|
37 | exports.reporter = useReporter;
|