MCPcopy
hub / github.com/htmlhint/HTMLHint / sarifFormatter

Function sarifFormatter

src/cli/formatters/sarif.ts:111–209  ·  view source on GitHub ↗
(formatter)

Source from the content-addressed store, hash-verified

109}
110
111const sarifFormatter: FormatterCallback = function (formatter) {
112 formatter.on('end', (event) => {
113 const arrAllMessages = event.arrAllMessages
114
115 // SARIF builder
116 const sarifBuilder = new SarifBuilder()
117
118 // SARIF Run builder
119 const sarifRunBuilder = new SarifRunBuilder().initSimple({
120 toolDriverName: 'HTMLHint',
121 toolDriverVersion: pkg.version,
122 url: 'https://htmlhint.com/',
123 })
124
125 // SARIF rules
126 const addedRuleSet = new Set<string>()
127 arrAllMessages.forEach((result) => {
128 result.messages.forEach((message) => {
129 const rule = message.rule
130 if (addedRuleSet.has(rule.id)) {
131 return
132 }
133 addedRuleSet.add(rule.id)
134
135 const sarifRuleBuilder = new SarifRuleBuilder().initSimple({
136 ruleId: rule.id,
137 shortDescriptionText: rule.description,
138 helpUri: rule.link,
139 })
140
141 sarifRunBuilder.addRule(sarifRuleBuilder)
142 })
143 })
144
145 // Add SARIF results (individual errors)
146 arrAllMessages.forEach((result) => {
147 result.messages.forEach((message) => {
148 const sarifResultBuilder = new SarifResultBuilder()
149 const ruleId = message.rule.id
150 const sarifResultInit = {
151 level:
152 message.type === ReportType.info
153 ? 'note'
154 : (message.type.toString() as Result.level),
155 messageText: message.message,
156 ruleId: ruleId,
157 fileUri: path
158 .relative(process.cwd(), result.file)
159 .replace(/\\/g, '/'),
160 startLine: message.line,
161 startColumn: message.col,
162 endLine: message.line,
163 endColumn: message.col,
164 } as const
165 sarifResultBuilder.initSimple(sarifResultInit)
166 sarifRunBuilder.addResult(sarifResultBuilder)
167 })
168 })

Callers

nothing calls this directly

Calls 4

getRuleMarkdownFunction · 0.85
onMethod · 0.80
addRuleMethod · 0.80
parseMethod · 0.80

Tested by

no test coverage detected