UNPKG

@builder.io/eslint-plugin-mitosis

Version:

A Mitosis plugin containing rules that help you write valid and idiomatic Mitosis code

51 lines (50 loc) 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var types = require("@babel/types"); var isMitosisPath_1 = require("../helpers/isMitosisPath"); var regex = new RegExp('^on[A-Z]'); // ------------------------------------------------------------------------------ // Rule Definition // ------------------------------------------------------------------------------ var rule = { meta: { type: 'problem', docs: { description: 'disallow using regular functions as callbacks.', recommended: true, }, fixable: 'code', }, create: function (context) { // variables should be defined here var filename = context.getFilename(); if (!(0, isMitosisPath_1.default)(filename)) return {}; // ---------------------------------------------------------------------- // Helpers // ---------------------------------------------------------------------- // any helper functions should go here or else delete this section // ---------------------------------------------------------------------- // Public // ---------------------------------------------------------------------- // var listener = { JSXAttribute: function (node) { var name = node.name.name, value = node.value; if (typeof name !== 'string' || !regex.test(name)) return; if (types.isArrowFunctionExpression(value.expression)) return; context.report({ node: value.expression, message: 'Callback value must be an arrow function expression', fix: function (fixer) { return fixer.replaceTextRange(node.value.expression.range, '(event)=>{}'); }, }); }, }; return listener; }, }; exports.default = rule;