UNPKG

1.01 kBJavaScriptView Raw
1'use strict';
2
3const _ = require('lodash');
4const normalizeRuleSettings = require('./normalizeRuleSettings');
5const rules = require('./rules');
6
7/** @typedef {import('stylelint').StylelintConfigRules} StylelintConfigRules */
8/** @typedef {import('stylelint').StylelintConfig} StylelintConfig */
9
10/**
11 * @param {StylelintConfig} config
12 * @return {StylelintConfig}
13 */
14function normalizeAllRuleSettings(config) {
15 /** @type {StylelintConfigRules} */
16 const normalizedRules = {};
17
18 if (!config.rules) return config;
19
20 Object.keys(config.rules).forEach((ruleName) => {
21 const rawRuleSettings = _.get(config, ['rules', ruleName]);
22
23 const rule = rules[ruleName] || _.get(config, ['pluginFunctions', ruleName]);
24
25 if (!rule) {
26 normalizedRules[ruleName] = [];
27 } else {
28 normalizedRules[ruleName] = normalizeRuleSettings(
29 rawRuleSettings,
30 ruleName,
31 _.get(rule, 'primaryOptionArray'),
32 );
33 }
34 });
35
36 config.rules = normalizedRules;
37
38 return config;
39}
40
41module.exports = normalizeAllRuleSettings;