epiphany/node_modules/stylelint-order/rules/order/getDescription.js
2023-12-09 22:48:07 -08:00

51 lines
1 KiB
JavaScript

const { isObject } = require('../../utils/validateType');
module.exports = function getDescription(item) {
const descriptions = {
'custom-properties': 'custom property',
'dollar-variables': '$-variable',
'at-variables': '@-variable',
'less-mixins': 'Less mixin',
declarations: 'declaration',
};
if (isObject(item)) {
let text;
if (item.type === 'at-rule') {
text = 'at-rule';
if (item.name) {
text = `@${item.name}`;
}
if (item.parameter) {
text += ` "${item.parameter}"`;
}
if (item.hasOwnProperty('hasBlock')) {
if (item.hasBlock) {
text += ' with a block';
} else {
text = `blockless ${text}`;
}
}
}
if (item.type === 'rule') {
text = 'rule';
if (item.name) {
// Prefer 'name' property for better error messaging
text += ` "${item.name}"`;
} else if (item.selector) {
text += ` with selector matching "${item.selector}"`;
}
}
return text;
}
// Return description for keyword patterns
return descriptions[item];
};