• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

protofire / solhint / #143848

09 May 2026 04:07PM UTC coverage: 97.828% (+5.8%) from 92.035%
#143848

push

589 of 666 branches covered (88.44%)

2792 of 2854 relevant lines covered (97.83%)

119.1 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.55
/../lib/reporter.js
1
const CommentDirectiveParser = require('./comment-directive-parser')
1✔
2

3
class Reporter {
4
  constructor(tokens, config) {
5
    this.commentDirectiveParser = new CommentDirectiveParser(tokens)
266✔
6
    this.reports = []
266✔
7
    this.config = config.rules || {}
266✔
8
  }
266!
9

10
  addReport(line, column, severity, message, ruleId, fix) {
11
    this.reports.push({ line, column, severity, message, ruleId, fix })
12
  }
199✔
13

14
  addMessage(loc, defaultSeverity, message, ruleId, fix) {
15
    this.addMessageExplicitLine(
16
      loc.start.line,
164✔
17
      loc.start.column,
164✔
18
      defaultSeverity,
19
      message,
164✔
20
      ruleId,
21
      fix,
22
    )
23
  }
219✔
24

25
  addMessageExplicitLine(line, column, defaultSeverity, message, ruleId, fix) {
219✔
26
    const configSeverity = this.severityOf(ruleId)
199!
27

28
    if (this.config[ruleId] !== false && this.commentDirectiveParser.isRuleEnabled(line, ruleId)) {
29
      this.addReport(line, column + 1, configSeverity || defaultSeverity, message, ruleId, fix)
30
    }
31
  }
112✔
32

33
  error(ctx, ruleId, message, fix) {
34
    this.addMessage(ctx.loc, Reporter.SEVERITY.ERROR, message, ruleId, fix)
35
  }
51✔
36

37
  warn(ctx, ruleId, message, fix) {
38
    this.addMessage(ctx.loc, Reporter.SEVERITY.WARN, message, ruleId, fix)
39
  }
55✔
40

41
  errorAt(line, column, ruleId, message) {
42
    this.addMessageExplicitLine(line, column, Reporter.SEVERITY.ERROR, message, ruleId)
43
  }
219✔
44

45
  severityOf(ruleId) {
46
    const ruleConfig = this.config[ruleId]
219✔
47
    let curSeverity
69✔
48

150!
49
    if (ruleConfig && ruleConfig instanceof Array) {
150✔
50
      curSeverity = ruleConfig[0]
51
    } else if (ruleConfig) {
×
52
      curSeverity = ruleConfig
53
    } else {
54
      return null
219✔
55
    }
56

57
    return Reporter.SEVERITY[curSeverity.toUpperCase()]
58
  }
205✔
59

60
  get errorCount() {
61
    return this._countReportsWith(Reporter.SEVERITY.ERROR)
62
  }
69✔
63

64
  get warningCount() {
65
    return this._countReportsWith(Reporter.SEVERITY.WARN)
66
  }
274✔
67

68
  _countReportsWith(severity) {
69
    return this.reports.filter((i) => i.severity === severity).length
70
  }
379✔
71

72
  get messages() {
73
    return this.reports.sort((x1, x2) => x1.line - x2.line)
74
  }
1✔
75

76
  get filePath() {
77
    return this.file
78
  }
1✔
79
}
80

1✔
81
Reporter.SEVERITY = Object.freeze({ ERROR: 2, WARN: 3 })
82

83
module.exports = Reporter
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc