blob: ba1bb095d30929dd38d092ff48a42a3fb2d9f505 [file] [log] [blame]
/* @flow */
"use strict";
const _ = require("lodash");
const getNextNonSharedLineCommentNode = require("./getNextNonSharedLineCommentNode");
const getPreviousNonSharedLineCommentNode = require("./getPreviousNonSharedLineCommentNode");
function nodesShareLines(a, b) {
return _.get(a, "source.end.line") === _.get(b, "source.start.line");
}
module.exports = function isSharedLineComment(
node /*: postcss$node*/
) /*: boolean*/ {
if (node.type !== "comment") {
return false;
}
const previousNonSharedLineCommentNode = getPreviousNonSharedLineCommentNode(
node
);
if (nodesShareLines(previousNonSharedLineCommentNode, node)) {
return true;
}
const nextNonSharedLineCommentNode = getNextNonSharedLineCommentNode(node);
if (nodesShareLines(node, nextNonSharedLineCommentNode)) {
return true;
}
const parentNode = node.parent;
if (
parentNode !== undefined &&
parentNode.type !== "root" &&
parentNode.source.start.line === node.source.start.line
) {
return true;
}
return false;
};