| 'use strict'; |
| |
| const createPartialStylelintResult = require('./createPartialStylelintResult'); |
| |
| /** @typedef {import('stylelint').PostcssResult} PostcssResult */ |
| /** @typedef {import('stylelint').LintResult} StylelintResult */ |
| |
| /** |
| * @param {import('stylelint').InternalApi} stylelint |
| * @param {PostcssResult} [postcssResult] |
| * @param {string} [filePath] |
| * @param {import('stylelint').CssSyntaxError} [cssSyntaxError] |
| * @return {Promise<StylelintResult>} |
| */ |
| module.exports = async function createStylelintResult( |
| stylelint, |
| postcssResult, |
| filePath, |
| cssSyntaxError, |
| ) { |
| let stylelintResult = createPartialStylelintResult(postcssResult, cssSyntaxError); |
| |
| const configForFile = await stylelint.getConfigForFile(filePath, filePath); |
| |
| const config = configForFile === null ? {} : configForFile.config; |
| const file = stylelintResult.source || (cssSyntaxError && cssSyntaxError.file); |
| |
| if (config.resultProcessors) { |
| for (const resultProcessor of config.resultProcessors) { |
| // Result processors might just mutate the result object, |
| // or might return a new one |
| const returned = resultProcessor(stylelintResult, file); |
| |
| if (returned) { |
| stylelintResult = returned; |
| } |
| } |
| } |
| |
| return stylelintResult; |
| }; |