@eslint-react/jsx
Advanced tools
Comparing version
@@ -75,2 +75,4 @@ import { _ } from '@eslint-react/eff'; | ||
type TSESTreeJSX = TSESTree.JSXAttribute | TSESTree.JSXClosingElement | TSESTree.JSXClosingFragment | TSESTree.JSXElement | TSESTree.JSXEmptyExpression | TSESTree.JSXExpressionContainer | TSESTree.JSXFragment | TSESTree.JSXIdentifier | TSESTree.JSXMemberExpression | TSESTree.JSXNamespacedName | TSESTree.JSXOpeningElement | TSESTree.JSXOpeningFragment | TSESTree.JSXSpreadAttribute | TSESTree.JSXSpreadChild | TSESTree.JSXText; | ||
declare const isJSX: (node: TSESTree.Node | null | undefined) => node is TSESTree.JSXIdentifier | TSESTree.JSXMemberExpression | TSESTree.JSXNamespacedName | TSESTree.JSXOpeningElement | TSESTree.JSXClosingElement | TSESTree.JSXOpeningFragment | TSESTree.JSXClosingFragment | TSESTree.JSXText | TSESTree.JSXAttribute | TSESTree.JSXSpreadAttribute | TSESTree.JSXElement | TSESTree.JSXFragment | TSESTree.JSXExpressionContainer | TSESTree.JSXSpreadChild | TSESTree.JSXEmptyExpression; | ||
/** | ||
@@ -101,2 +103,2 @@ * Check if a node is a `JSXText` or a `Literal` node | ||
export { DEFAULT_JSX_DETECTION_HINT, JSXDetectionHint, findParentAttribute, getAttribute, getAttributeName, getAttributeValue, getElementType, hasAnyAttribute, hasAttribute, hasEveryAttribute, isFragmentElement, isHostElement, isJsxLike, isJsxText, isKeyedElement, toString }; | ||
export { DEFAULT_JSX_DETECTION_HINT, JSXDetectionHint, type TSESTreeJSX, findParentAttribute, getAttribute, getAttributeName, getAttributeValue, getElementType, hasAnyAttribute, hasAttribute, hasEveryAttribute, isFragmentElement, isHostElement, isJSX, isJsxLike, isJsxText, isKeyedElement, toString }; |
@@ -6,3 +6,3 @@ 'use strict'; | ||
var tsPattern = require('ts-pattern'); | ||
var AST = require('@eslint-react/ast'); | ||
var AST2 = require('@eslint-react/ast'); | ||
var eff = require('@eslint-react/eff'); | ||
@@ -29,3 +29,3 @@ | ||
var VAR__namespace = /*#__PURE__*/_interopNamespace(VAR); | ||
var AST__namespace = /*#__PURE__*/_interopNamespace(AST); | ||
var AST2__namespace = /*#__PURE__*/_interopNamespace(AST2); | ||
@@ -135,3 +135,3 @@ // src/attribute/attribute.ts | ||
}; | ||
return AST__namespace.findParentNode(node, guard); | ||
return AST2__namespace.findParentNode(node, guard); | ||
} | ||
@@ -175,2 +175,19 @@ function getElementType(node) { | ||
// src/jsx-detection.ts | ||
var isJSX = AST2__namespace.isOneOf([ | ||
types.AST_NODE_TYPES.JSXAttribute, | ||
types.AST_NODE_TYPES.JSXClosingElement, | ||
types.AST_NODE_TYPES.JSXClosingFragment, | ||
types.AST_NODE_TYPES.JSXElement, | ||
types.AST_NODE_TYPES.JSXEmptyExpression, | ||
types.AST_NODE_TYPES.JSXExpressionContainer, | ||
types.AST_NODE_TYPES.JSXFragment, | ||
types.AST_NODE_TYPES.JSXIdentifier, | ||
types.AST_NODE_TYPES.JSXMemberExpression, | ||
types.AST_NODE_TYPES.JSXNamespacedName, | ||
types.AST_NODE_TYPES.JSXOpeningElement, | ||
types.AST_NODE_TYPES.JSXOpeningFragment, | ||
types.AST_NODE_TYPES.JSXSpreadAttribute, | ||
types.AST_NODE_TYPES.JSXSpreadChild, | ||
types.AST_NODE_TYPES.JSXText | ||
]); | ||
function isJsxText(node) { | ||
@@ -181,20 +198,5 @@ if (node == null) return false; | ||
function isJsxLike(code, node, hint = DEFAULT_JSX_DETECTION_HINT) { | ||
switch (node?.type) { | ||
case types.AST_NODE_TYPES.JSXText: | ||
case types.AST_NODE_TYPES.JSXElement: | ||
case types.AST_NODE_TYPES.JSXFragment: | ||
case types.AST_NODE_TYPES.JSXAttribute: | ||
case types.AST_NODE_TYPES.JSXClosingElement: | ||
case types.AST_NODE_TYPES.JSXClosingFragment: | ||
case types.AST_NODE_TYPES.JSXEmptyExpression: | ||
case types.AST_NODE_TYPES.JSXExpressionContainer: | ||
case types.AST_NODE_TYPES.JSXIdentifier: | ||
case types.AST_NODE_TYPES.JSXMemberExpression: | ||
case types.AST_NODE_TYPES.JSXOpeningElement: | ||
case types.AST_NODE_TYPES.JSXOpeningFragment: | ||
case types.AST_NODE_TYPES.JSXSpreadAttribute: | ||
case types.AST_NODE_TYPES.JSXSpreadChild: | ||
case types.AST_NODE_TYPES.JSXNamespacedName: { | ||
return true; | ||
} | ||
if (node == null) return false; | ||
if (isJSX(node)) return true; | ||
switch (node.type) { | ||
case types.AST_NODE_TYPES.Literal: { | ||
@@ -272,3 +274,3 @@ switch (typeof node.value) { | ||
} | ||
if (AST__namespace.isJSXTagNameExpression(node)) { | ||
if (AST2__namespace.isJSXTagNameExpression(node)) { | ||
return true; | ||
@@ -296,2 +298,3 @@ } | ||
exports.isHostElement = isHostElement; | ||
exports.isJSX = isJSX; | ||
exports.isJsxLike = isJsxLike; | ||
@@ -298,0 +301,0 @@ exports.isJsxText = isJsxText; |
{ | ||
"name": "@eslint-react/jsx", | ||
"version": "1.43.2-next.2", | ||
"version": "1.45.0-beta.3", | ||
"description": "ESLint React's TSESTree AST utility module for static analysis of JSX.", | ||
@@ -42,5 +42,5 @@ "homepage": "https://github.com/Rel1cx/eslint-react", | ||
"ts-pattern": "^5.7.0", | ||
"@eslint-react/eff": "1.43.2-next.2", | ||
"@eslint-react/var": "1.43.2-next.2", | ||
"@eslint-react/ast": "1.43.2-next.2" | ||
"@eslint-react/ast": "1.45.0-beta.3", | ||
"@eslint-react/var": "1.45.0-beta.3", | ||
"@eslint-react/eff": "1.45.0-beta.3" | ||
}, | ||
@@ -47,0 +47,0 @@ "devDependencies": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
33832
5.78%631
1.45%+ Added
+ Added
+ Added
- Removed
- Removed
- Removed