| 'use strict'; |
| |
| const _ = require('lodash'); |
| const normalizeRuleSettings = require('./normalizeRuleSettings'); |
| const rules = require('./rules'); |
| |
| /** @typedef {import('stylelint').StylelintConfigRules} StylelintConfigRules */ |
| /** @typedef {import('stylelint').StylelintConfig} StylelintConfig */ |
| |
| /** |
| * @param {StylelintConfig} config |
| * @return {StylelintConfig} |
| */ |
| function normalizeAllRuleSettings(config) { |
| /** @type {StylelintConfigRules} */ |
| const normalizedRules = {}; |
| |
| if (!config.rules) return config; |
| |
| Object.keys(config.rules).forEach((ruleName) => { |
| const rawRuleSettings = _.get(config, ['rules', ruleName]); |
| |
| const rule = rules[ruleName] || _.get(config, ['pluginFunctions', ruleName]); |
| |
| if (!rule) { |
| normalizedRules[ruleName] = []; |
| } else { |
| normalizedRules[ruleName] = normalizeRuleSettings( |
| rawRuleSettings, |
| ruleName, |
| _.get(rule, 'primaryOptionArray'), |
| ); |
| } |
| }); |
| |
| config.rules = normalizedRules; |
| |
| return config; |
| } |
| |
| module.exports = normalizeAllRuleSettings; |