@samitouri / QOS-React-2 / commits / 79dbf6fc19

[eslint-plugin] Try using HermesParser

Lauren Tan committed Jun 20, 2023 at 12:30 UTC 79dbf6fc19bb26336f0043cc6fb62eaac2676f96
4 files changed +29 -4
compiler/forget/packages/eslint-plugin-react-forget/package.json
+2 -1
@@ -23,7 +23,8 @@
23 "@babel/traverse": "^7.19.1",
24 "babel-plugin-fbt": "^1.0.0",
25 "babel-plugin-fbt-runtime": "^1.0.0",
26 - "babel-plugin-react-forget": "*"
26 + "babel-plugin-react-forget": "*",
27 + "hermes-parser": "^0.12.1"
28 },
29 "devDependencies": {
30 "@babel/eslint-parser": "^7.19.1",
compiler/forget/packages/eslint-plugin-react-forget/src/rules/ReactForgetDiagnostics.ts
+3 -3
@@ -6,12 +6,12 @@
6 */
7
8 import { transformFromAstSync } from "@babel/core";
9 -import * as parser from "@babel/parser";
9 import ReactForgetBabelPlugin, {
10 CompilerError,
11 type PluginOptions,
12 } from "babel-plugin-react-forget";
13 import type { Rule } from "eslint";
14 +import * as HermesParser from "hermes-parser";
15
16 const rule: Rule.RuleModule = {
17 meta: {
@@ -35,9 +35,9 @@ const rule: Rule.RuleModule = {
35 validateRefAccessDuringRender: true,
36 },
37 };
38 - const babelAST = parser.parse(sourceCode, {
38 + const babelAST = HermesParser.parse(sourceCode, {
39 + babel: true,
40 sourceFilename: filename,
40 - plugins: ["jsx", "flow"],
41 sourceType: "module",
42 });
43 if (babelAST != null) {
compiler/forget/packages/eslint-plugin-react-forget/src/types/hermes-parser.d.ts new
+12
@@ -0,0 +1,12 @@
1 +// v0.12.1
2 +declare module "hermes-parser" {
3 + type HermesParserOptions = {
4 + babel: boolean;
5 + allowReturnOutsideFunction: boolean;
6 + flow: "all" | "detect";
7 + sourceFilename: string | null;
8 + sourceType: "module" | "script" | "unambiguous";
9 + tokens: boolean;
10 + };
11 + export function parse(code: string, options: Partial<HermesParserOptions>);
12 +}
compiler/forget/yarn.lock
+12
@@ -5572,6 +5572,11 @@ hermes-eslint@^0.9.0:
5572 hermes-estree "0.9.0"
5573 hermes-parser "0.9.0"
5574
5575 +hermes-estree@0.12.1:
5576 + version "0.12.1"
5577 + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.12.1.tgz#74901ee351387fecbf3c683c90b1fa7d22f1c6f0"
5578 + integrity sha512-IWnP3rEZnuEq64IGM/sNsp+QCQcCAAu5TMallJ7bpUw0YUfk5q6cA7tvBGo/D0kGyo5jASc4Yp/CQCsLSSMfGQ==
5579 +
5580 hermes-estree@0.9.0:
5581 version "0.9.0"
5582 resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.9.0.tgz#026e0abe6db1dcf50a81a79014b779a83db3b814"
@@ -5584,6 +5589,13 @@ hermes-parser@0.9.0:
5589 dependencies:
5590 hermes-estree "0.9.0"
5591
5592 +hermes-parser@^0.12.1:
5593 + version "0.12.1"
5594 + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.12.1.tgz#e60595f05ecd13026c614ca5d9db2eaefe971301"
5595 + integrity sha512-53aep6osCq1GiSIlbe7ltPD9v0GeAUtGlaMhgKexGjePoI66GnalLR5aPeuIZbExBQAb+af/kiXT3yxBweuXUA==
5596 + dependencies:
5597 + hermes-estree "0.12.1"
5598 +
5599 hmac-drbg@^1.0.1:
5600 version "1.0.1"
5601 resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"