Sha256: 29d3c2c3edf2d62f08393f064c00dc24f6bf20b9d0710f65cf525ffdf18bb911
Contents?: true
Size: 1.84 KB
Versions: 24
Compression:
Stored size: 1.84 KB
Contents
let stylelint = require('stylelint'); let _ = require('lodash'); module.exports = function checkOrder(firstNodeData, secondNodeData, allNodesData, sharedInfo) { let firstNodeIsSpecified = Boolean(firstNodeData.expectedPosition); let secondNodeIsSpecified = Boolean(secondNodeData.expectedPosition); // If both nodes have their position if (firstNodeIsSpecified && secondNodeIsSpecified) { return firstNodeData.expectedPosition <= secondNodeData.expectedPosition; } if (!firstNodeIsSpecified && secondNodeIsSpecified) { // If first node is unspecified, look for a specified node before it // to compare to the current node let priorSpecifiedNodeData = _.findLast(allNodesData.slice(0, -1), d => Boolean(d.expectedPosition) ); if ( priorSpecifiedNodeData && priorSpecifiedNodeData.expectedPosition && priorSpecifiedNodeData.expectedPosition > secondNodeData.expectedPosition ) { if (sharedInfo.isFixEnabled) { sharedInfo.shouldFix = true; // Don't go further, fix will be applied return; } stylelint.utils.report({ message: sharedInfo.messages.expected( secondNodeData.description, priorSpecifiedNodeData.description ), node: secondNodeData.node, result: sharedInfo.result, ruleName: sharedInfo.ruleName, }); return true; // avoid logging another warning } } if (!firstNodeIsSpecified && !secondNodeIsSpecified) { return true; } let { unspecified } = sharedInfo; if (unspecified === 'ignore' && (!firstNodeIsSpecified || !secondNodeIsSpecified)) { return true; } if (unspecified === 'top' && !firstNodeIsSpecified) { return true; } if (unspecified === 'top' && !secondNodeIsSpecified) { return false; } if (unspecified === 'bottom' && !secondNodeIsSpecified) { return true; } if (unspecified === 'bottom' && !firstNodeIsSpecified) { return false; } };
Version data entries
24 entries across 24 versions & 1 rubygems