eslint-plugin-opinionated
Version:
Opinionated rules for styling your code.
29 lines (24 loc) • 824 B
JavaScript
;
exports.__esModule = true;
exports.rule = rule;
var _types = require("@babel/types");
// eslint-disable-next-line flowtype/no-weak-types
function rule(context) {
return {
// eslint-disable-next-line flowtype/no-weak-types
JSXOpeningElement: function JSXOpeningElement(node) {
var encounteredNonSpreadAttr = false;
for (var i = 0; i < node.attributes.length; i++) {
var attribute = node.attributes[i];
if ((0, _types.isJSXAttribute)(attribute)) {
encounteredNonSpreadAttr = true;
} else if (encounteredNonSpreadAttr && (0, _types.isJSXSpreadAttribute)(attribute)) {
context.report({
message: "JSX spread attribute should go before non-spread attributes.",
node: attribute
});
}
}
}
};
}