52 lines
1.1 KiB
JavaScript
52 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const preprocessWarnings = require('./preprocessWarnings');
|
|
|
|
/**
|
|
* @type {import('stylelint').Formatter}
|
|
*/
|
|
module.exports = function tapFormatter(results) {
|
|
const lines = [`TAP version 13\n1..${results.length}`];
|
|
|
|
for (const [index, result] of results.entries()) {
|
|
preprocessWarnings(result);
|
|
|
|
lines.push(
|
|
`${result.errored ? 'not ok' : 'ok'} ${index + 1} - ${result.ignored ? 'ignored ' : ''}${
|
|
result.source
|
|
}`,
|
|
);
|
|
|
|
if (result.warnings.length > 0) {
|
|
lines.push('---', 'messages:');
|
|
|
|
for (const warning of result.warnings) {
|
|
lines.push(
|
|
` - message: "${warning.text}"`,
|
|
` severity: ${warning.severity}`,
|
|
` data:`,
|
|
` line: ${warning.line}`,
|
|
` column: ${warning.column}`,
|
|
);
|
|
|
|
if (typeof warning.endLine === 'number') {
|
|
lines.push(` endLine: ${warning.endLine}`);
|
|
}
|
|
|
|
if (typeof warning.endColumn === 'number') {
|
|
lines.push(` endColumn: ${warning.endColumn}`);
|
|
}
|
|
|
|
if (typeof warning.rule === 'string') {
|
|
lines.push(` ruleId: ${warning.rule}`);
|
|
}
|
|
}
|
|
|
|
lines.push('---');
|
|
}
|
|
}
|
|
|
|
lines.push('');
|
|
|
|
return lines.join('\n');
|
|
};
|