el-beeswarm
Version:
<div style="display: flex; padding: 1rem; flex-direction: column; align-items: center; justify-content: center; height: 100vh; text-align: center; display: flex;
42 lines (31 loc) • 1.01 kB
JavaScript
;
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;