| 'use strict'; |
| |
| const _ = require('lodash'); |
| |
| /** @typedef {import('postcss').Node} Node */ |
| |
| /** |
| * @param {Node} node |
| */ |
| function getNodeLine(node) { |
| return _.get(node, 'source.start.line'); |
| } |
| |
| /** |
| * @param {import('postcss').Node | void} node |
| * @returns {Node | void} |
| */ |
| module.exports = function getPreviousNonSharedLineCommentNode(node) { |
| if (node === undefined) { |
| return undefined; |
| } |
| |
| const previousNode = node.prev(); |
| |
| if (!previousNode || _.get(previousNode, 'type') !== 'comment') { |
| return previousNode; |
| } |
| |
| if (getNodeLine(node) === getNodeLine(previousNode)) { |
| return getPreviousNonSharedLineCommentNode(previousNode); |
| } |
| |
| const previousNode2 = previousNode.prev(); |
| |
| if (previousNode2 && getNodeLine(previousNode) === getNodeLine(previousNode2)) { |
| return getPreviousNonSharedLineCommentNode(previousNode); |
| } |
| |
| return previousNode; |
| }; |