@builder.io/eslint-plugin-mitosis
Version:
A Mitosis plugin containing rules that help you write valid and idiomatic Mitosis code
39 lines (38 loc) • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.staticControlFlow = void 0;
var types = require("@babel/types");
var isMitosisPath_1 = require("../helpers/isMitosisPath");
exports.staticControlFlow = {
create: function (context) {
if (!(0, isMitosisPath_1.default)(context.getFilename()))
return {};
return {
VariableDeclarator: function (node) {
if (types.isVariableDeclarator(node)) {
if (types.isObjectPattern(node.id) &&
types.isIdentifier(node.init) &&
node.init.name === 'state') {
context.report({
node: node,
message: 'Destructuring the state object is currently not supported',
});
}
}
},
JSXExpressionContainer: function (node) {
if (types.isJSXExpressionContainer(node)) {
if (types.isConditionalExpression(node.expression)) {
if (types.isJSXElement(node.expression.consequent) ||
types.isJSXElement(node.expression.alternate)) {
context.report({
node: node,
message: 'Ternaries around JSX Elements are not currently supported. Instead use binary expressions - e.g. {foo ? <bar /> : <baz />} should be {foo && <bar />}{!foo && <baz />}',
});
}
}
}
},
};
},
};