stylelint
Version:
A mighty, modern CSS linter.
39 lines (29 loc) • 928 B
JavaScript
const normalizeRuleSettings = require('./normalizeRuleSettings');
const rules = require('./rules');
/** @typedef {import('stylelint').ConfigRules} StylelintConfigRules */
/** @typedef {import('stylelint').Config} StylelintConfig */
/**
* @param {StylelintConfig} config
* @return {StylelintConfig}
*/
function normalizeAllRuleSettings(config) {
if (!config.rules) return config;
/** @type {StylelintConfigRules} */
const normalizedRules = {};
for (const [ruleName, rawRuleSettings] of Object.entries(config.rules)) {
const rule = rules[ruleName] || (config.pluginFunctions && config.pluginFunctions[ruleName]);
if (rule) {
normalizedRules[ruleName] = normalizeRuleSettings(
rawRuleSettings,
ruleName,
rule.primaryOptionArray,
);
} else {
normalizedRules[ruleName] = [];
}
}
config.rules = normalizedRules;
return config;
}
module.exports = normalizeAllRuleSettings;
;