stylelint
Version:
A mighty, modern CSS linter.
32 lines (24 loc) • 711 B
JavaScript
/* @flow */
;
const _ = require('lodash');
function getNodeLine(node /*:: ?: postcss$node*/) /*: number | void*/ {
return _.get(node, 'source.start.line');
}
module.exports = function getPreviousNonSharedLineCommentNode(
node /*:: ?: postcss$node*/,
) /*: postcss$node | void*/ {
if (node === undefined) {
return undefined;
}
const previousNode = node.prev();
if (_.get(previousNode, 'type') !== 'comment') {
return previousNode;
}
if (
getNodeLine(node) === getNodeLine(previousNode) ||
(previousNode !== undefined && getNodeLine(previousNode) === getNodeLine(previousNode.prev()))
) {
return getPreviousNonSharedLineCommentNode(previousNode);
}
return previousNode;
};