mirror of
https://github.com/OliveTin/OliveTin
synced 2025-12-17 03:25:37 +00:00
30 lines
772 B
JavaScript
30 lines
772 B
JavaScript
import getStylelintRule from './utils/getStylelintRule.mjs';
|
|
import normalizeRuleSettings from './normalizeRuleSettings.mjs';
|
|
|
|
/** @import {Config as StylelintConfig} from 'stylelint' */
|
|
|
|
/**
|
|
* @param {StylelintConfig} config
|
|
* @returns {Promise<StylelintConfig>}
|
|
*/
|
|
export default async function normalizeAllRuleSettings(config) {
|
|
if (!config.rules) return config;
|
|
|
|
/** @type {StylelintConfig['rules']} */
|
|
const normalizedRules = {};
|
|
|
|
for (const [ruleName, rawRuleSettings] of Object.entries(config.rules)) {
|
|
const rule = await getStylelintRule(ruleName, config);
|
|
|
|
if (rule) {
|
|
normalizedRules[ruleName] = normalizeRuleSettings(rawRuleSettings, rule);
|
|
} else {
|
|
normalizedRules[ruleName] = [];
|
|
}
|
|
}
|
|
|
|
config.rules = normalizedRules;
|
|
|
|
return config;
|
|
}
|