eslint-plugin-react-x 2.2.5-next.2 → 2.3.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +53 -1
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ var __export = (all) => {
28
28
  //#endregion
29
29
  //#region package.json
30
30
  var name$6 = "eslint-plugin-react-x";
31
- var version = "2.2.5-next.2";
31
+ var version = "2.3.0-beta.0";
32
32
 
33
33
  //#endregion
34
34
  //#region src/utils/create-rule.ts
@@ -116,6 +116,57 @@ function getTypeVariants(types) {
116
116
  return variants;
117
117
  }
118
118
 
119
+ //#endregion
120
+ //#region src/rules/jsx-dollar.ts
121
+ const RULE_NAME$62 = "jsx-dollar";
122
+ const RULE_FEATURES$60 = [];
123
+ var jsx_dollar_default = createRule({
124
+ meta: {
125
+ type: "problem",
126
+ docs: {
127
+ description: "Prevents dollar signs from being inserted as text nodes before expressions.",
128
+ [Symbol.for("rule_features")]: RULE_FEATURES$60
129
+ },
130
+ fixable: "code",
131
+ hasSuggestions: true,
132
+ messages: {
133
+ jsxDollar: "Possible unnecessary '$' character before expression.",
134
+ removeDollarSign: "Remove the dollar sign '$' before the expression."
135
+ },
136
+ schema: []
137
+ },
138
+ name: RULE_NAME$62,
139
+ create: create$62,
140
+ defaultOptions: []
141
+ });
142
+ function create$62(context) {
143
+ /**
144
+ * Visitor function for JSXElement and JSXFragment nodes
145
+ * @param node The JSXElement or JSXFragment node to be checked
146
+ */
147
+ const visitorFunction = (node) => {
148
+ for (const [index, child] of node.children.entries()) {
149
+ if (child.type !== AST_NODE_TYPES.JSXText || !child.value.endsWith("$")) continue;
150
+ if (node.children[index + 1]?.type !== AST_NODE_TYPES.JSXExpressionContainer) continue;
151
+ if (child.value === "$" && node.children.length === 2) continue;
152
+ context.report({
153
+ messageId: "jsxDollar",
154
+ node: child,
155
+ suggest: [{
156
+ messageId: "removeDollarSign",
157
+ fix(fixer) {
158
+ return fixer.removeRange([child.range[1] - 1, child.range[1]]);
159
+ }
160
+ }]
161
+ });
162
+ }
163
+ };
164
+ return {
165
+ JSXElement: visitorFunction,
166
+ JSXFragment: visitorFunction
167
+ };
168
+ }
169
+
119
170
  //#endregion
120
171
  //#region src/rules/jsx-key-before-spread.ts
121
172
  const RULE_NAME$61 = "jsx-key-before-spread";
@@ -3463,6 +3514,7 @@ const plugin = {
3463
3514
  version
3464
3515
  },
3465
3516
  rules: {
3517
+ "jsx-dollar": jsx_dollar_default,
3466
3518
  "jsx-key-before-spread": jsx_key_before_spread_default,
3467
3519
  "jsx-no-comment-textnodes": jsx_no_comment_textnodes_default,
3468
3520
  "jsx-no-duplicate-props": jsx_no_duplicate_props_default,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-react-x",
3
- "version": "2.2.5-next.2",
3
+ "version": "2.3.0-beta.0",
4
4
  "description": "A set of composable ESLint rules for for libraries and frameworks that use React as a UI runtime.",
5
5
  "keywords": [
6
6
  "react",
@@ -46,11 +46,11 @@
46
46
  "string-ts": "^2.2.1",
47
47
  "ts-api-utils": "^2.1.0",
48
48
  "ts-pattern": "^5.9.0",
49
- "@eslint-react/ast": "2.2.5-next.2",
50
- "@eslint-react/eff": "2.2.5-next.2",
51
- "@eslint-react/core": "2.2.5-next.2",
52
- "@eslint-react/shared": "2.2.5-next.2",
53
- "@eslint-react/var": "2.2.5-next.2"
49
+ "@eslint-react/ast": "2.3.0-beta.0",
50
+ "@eslint-react/core": "2.3.0-beta.0",
51
+ "@eslint-react/eff": "2.3.0-beta.0",
52
+ "@eslint-react/shared": "2.3.0-beta.0",
53
+ "@eslint-react/var": "2.3.0-beta.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/react": "^19.2.2",