UNPKG

eslint-plugin-playlyfe

Version:
45 lines (34 loc) 1.13 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _jsxPascalCase = _interopRequireDefault(require("eslint-plugin-react/lib/rules/jsx-pascal-case")); var _elementType = _interopRequireDefault(require("jsx-ast-utils/elementType")); /** * patch original rule to add support for underscore * in starting e.g <_Test /> */ function removeUnderScoreFromStart(name) { return name.replace(/^_+/, ''); } function patchName(name, nameNode) { return Object.assign({}, nameNode, { type: 'JSXIdentifier', name: removeUnderScoreFromStart(name) }); } module.exports = Object.assign({}, _jsxPascalCase.default, { create(context) { const orig = _jsxPascalCase.default.create(context); return Object.assign({}, orig, { JSXOpeningElement(node) { const name = (0, _elementType.default)(node); let patchedNode = node; if (name.startsWith('_')) { patchedNode = Object.assign({}, node, { name: patchName(name, node.name) }); } orig.JSXOpeningElement(patchedNode); } }); } });