You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.1 KiB

const stylelint = require('stylelint');
const _ = require('lodash');
const ruleName = require('./ruleName');
const messages = require('./messages');
const hasEmptyLineBefore = require('./hasEmptyLineBefore');
const removeEmptyLinesBefore = require('./removeEmptyLinesBefore');
module.exports = function checkEmptyLineBeforeFirstProp({
propData,
primaryOption,
emptyLineBeforeUnspecified,
isFixEnabled,
context,
result,
}) {
let emptyLineBefore = false;
if (propData.orderData) {
// Get an array of just the property groups, remove any solo properties
let groups = _.reject(primaryOption, _.isString);
emptyLineBefore = _.get(groups[propData.orderData.separatedGroup - 2], 'emptyLineBefore');
} else if (emptyLineBeforeUnspecified) {
emptyLineBefore = true;
}
if (emptyLineBefore && hasEmptyLineBefore(propData.node)) {
if (isFixEnabled) {
removeEmptyLinesBefore(propData.node, context.newline);
} else {
stylelint.utils.report({
message: messages.rejectedEmptyLineBefore(propData.name),
node: propData.node,
result,
ruleName,
});
}
}
};