blob: 3bda9defa237310ac441dd72cef71f29dd9ce90a [file] [log] [blame]
/* @flow */
"use strict";
module.exports = function(statement /*: postcss$node*/) /*: boolean*/ {
const parentNode = statement.parent;
if (parentNode === undefined || parentNode.type === "root") {
return false;
}
if (statement === parentNode.first) {
return true;
}
/*
* Search for the statement in the parent's nodes, ignoring comment
* nodes on the same line as the parent's opening brace.
*/
const parentNodes = parentNode.nodes;
const firstNode = parentNodes[0];
if (firstNode.type !== "comment" || firstNode.raws.before.includes("\n")) {
return false;
}
const openingBraceLine = firstNode.source.start.line;
if (openingBraceLine !== firstNode.source.end.line) {
return false;
}
for (let i = 1; i < parentNodes.length; i++) {
const node = parentNodes[i];
if (node === statement) {
return true;
}
if (node.type !== "comment" || node.source.end.line !== openingBraceLine) {
return false;
}
}
/* istanbul ignore next: Should always return in the loop */
return false;
};