| 'use strict'; |
| |
| const chalk = require('chalk'); |
| const path = require('path'); |
| |
| /** |
| * @param {string} fromValue |
| * @return {string} |
| */ |
| function logFrom(fromValue) { |
| if (fromValue.startsWith('<')) return fromValue; |
| |
| return path.relative(process.cwd(), fromValue).split(path.sep).join('/'); |
| } |
| |
| /** |
| * @param {import('stylelint').StylelintDisableOptionsReport} report |
| * @param {string} message |
| * @returns {string} |
| */ |
| module.exports = function (report, message) { |
| if (!report) return ''; |
| |
| let output = ''; |
| |
| report.forEach((sourceReport) => { |
| if (!sourceReport.ranges || sourceReport.ranges.length === 0) { |
| return; |
| } |
| |
| output += '\n'; |
| // eslint-disable-next-line prefer-template |
| output += chalk.underline(logFrom(sourceReport.source || '')) + '\n'; |
| |
| sourceReport.ranges.forEach((range) => { |
| output += `${message}: ${range.rule}, start line: ${range.start}`; |
| |
| if (range.end !== undefined) { |
| output += `, end line: ${range.end}`; |
| } |
| |
| output += '\n'; |
| }); |
| }); |
| |
| return output; |
| }; |