UNPKG

864 BJavaScriptView Raw
1'use strict';
2
3const _ = require('lodash');
4
5/** @typedef {import('postcss').Node} Node */
6
7/**
8 * @param {Node} node
9 */
10function getNodeLine(node) {
11 return _.get(node, 'source.start.line');
12}
13
14/**
15 * @param {import('postcss').Node | void} node
16 * @returns {Node | void}
17 */
18module.exports = function getPreviousNonSharedLineCommentNode(node) {
19 if (node === undefined) {
20 return undefined;
21 }
22
23 const previousNode = node.prev();
24
25 if (!previousNode || _.get(previousNode, 'type') !== 'comment') {
26 return previousNode;
27 }
28
29 if (getNodeLine(node) === getNodeLine(previousNode)) {
30 return getPreviousNonSharedLineCommentNode(previousNode);
31 }
32
33 const previousNode2 = previousNode.prev();
34
35 if (previousNode2 && getNodeLine(previousNode) === getNodeLine(previousNode2)) {
36 return getPreviousNonSharedLineCommentNode(previousNode);
37 }
38
39 return previousNode;
40};