|
123456789101112131415161718192021222324252627282930313233343536373839 |
- 'use strict';
-
- const createPartialStylelintResult = require('./createPartialStylelintResult');
-
- /** @typedef {import('stylelint').PostcssResult} PostcssResult */
- /** @typedef {import('postcss').NodeSource} NodeSource */
- /** @typedef {import('stylelint').StylelintResult} StylelintResult */
-
- /**
- * @param {import('stylelint').StylelintInternalApi} stylelint
- * @param {PostcssResult} [postcssResult]
- * @param {string} [filePath]
- * @param {import('stylelint').StylelintCssSyntaxError} [cssSyntaxError]
- * @return {Promise<StylelintResult>}
- */
- module.exports = function (stylelint, postcssResult, filePath, cssSyntaxError) {
- let stylelintResult = createPartialStylelintResult(postcssResult, cssSyntaxError);
-
- return stylelint.getConfigForFile(filePath).then((configForFile) => {
- // TODO TYPES handle possible null here
- const config = /** @type {{ config: import('stylelint').StylelintConfig, filepath: string }} */ (configForFile)
- .config;
- const file = stylelintResult.source || (cssSyntaxError && cssSyntaxError.file);
-
- if (config.resultProcessors) {
- config.resultProcessors.forEach((resultProcessor) => {
- // 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;
- });
- };
|