| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- // NOTICE: This file is generated by Rollup. To modify it,
- // please instead edit the ESM counterpart and rebuild with Rollup (npm run build).
- 'use strict';
- const fastestLevenshtein = require('fastest-levenshtein');
- const constants = require('./constants.cjs');
- const index = require('./rules/index.cjs');
- const MAX_LEVENSHTEIN_DISTANCE = 6;
- const MAX_SUGGESTIONS_COUNT = 3;
- /**
- * @param {string} ruleName
- * @returns {string[]}
- */
- function extractSuggestions(ruleName) {
- const suggestions = Array.from({ length: MAX_LEVENSHTEIN_DISTANCE });
- for (let i = 0; i < suggestions.length; i++) {
- suggestions[i] = [];
- }
- for (const existRuleName of Object.keys(index)) {
- const dist = fastestLevenshtein.distance(existRuleName, ruleName);
- if (dist <= MAX_LEVENSHTEIN_DISTANCE) {
- suggestions[dist - 1].push(existRuleName);
- }
- }
- /** @type {string[]} */
- let result = [];
- for (const [i, suggestion] of suggestions.entries()) {
- if (suggestion.length > 0) {
- if (i < 3) {
- return suggestion.slice(0, MAX_SUGGESTIONS_COUNT);
- }
- result = result.concat(suggestion);
- }
- }
- return result.slice(0, MAX_SUGGESTIONS_COUNT);
- }
- /**
- * @param {string} ruleName
- * @param {string[]} [suggestions]
- * @returns {string}
- */
- function rejectMessage(ruleName, suggestions = []) {
- return `Unknown rule ${ruleName}.${
- suggestions.length > 0 ? ` Did you mean ${suggestions.join(', ')}?` : ''
- }`;
- }
- /** @type {Map<string, string[]>} */
- const cache = new Map();
- /**
- * @param {string} unknownRuleName
- * @param {import('postcss').Root} postcssRoot
- * @param {import('stylelint').PostcssResult} postcssResult
- * @returns {void}
- */
- function reportUnknownRuleNames(unknownRuleName, postcssRoot, postcssResult) {
- const suggestions = cache.has(unknownRuleName)
- ? /** @type {string[]} */ (cache.get(unknownRuleName))
- : extractSuggestions(unknownRuleName);
- cache.set(unknownRuleName, suggestions);
- postcssResult.warn(rejectMessage(unknownRuleName, suggestions), {
- severity: constants.SEVERITY_ERROR,
- rule: unknownRuleName,
- node: postcssRoot,
- index: 0,
- });
- }
- module.exports = reportUnknownRuleNames;
|