UNPKG

eslint-plugin-opinionated

Version:
29 lines (24 loc) 824 B
"use strict"; 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 }); } } } }; }