stylelint-config-prettier-scss
Version:
Turns off all SCSS rules that are unnecessary or might conflict with Prettier.
40 lines (31 loc) • 896 B
JavaScript
;
const scssConfig = require('./index');
const stylelint = require('stylelint');
const { resolve } = require('path');
const { hasOwnProperty } = Object.prototype;
function check(path) {
const resolvedPath = resolve(process.cwd(), path || '');
return stylelint.resolveConfig(resolvedPath).then((config) => {
const prettierRules = {
...scssConfig.rules,
};
const configRules = config.rules;
const conflictingRules = [];
function isEmpty(value) {
return (
value === null || (Array.isArray(value) && value.length === 0)
);
}
Object.keys(prettierRules).forEach((rule) => {
if (
hasOwnProperty.call(configRules, rule) &&
!isEmpty(configRules[rule]) &&
configRules[rule][0] !== prettierRules[rule]
) {
conflictingRules.push(rule);
}
});
return conflictingRules.length ? conflictingRules : null;
});
}
exports.check = check;