@samitouri / QOS-React-1 / commits / 473237ba1f

Remove prettier from babel-plugin as dependency

We can now fully remove prettier from babel-plugin-react-forget. I moved it to devDependencies instead, to make the rollup build simpler and so we can continue to prettify our internal source code.

Lauren Tan committed Oct 27, 2023 at 14:07 UTC 473237ba1f573f1a287c974fa8d14e17f0fc5d65
5 files changed +26 -29
compiler/packages/babel-plugin-react-forget/package.json
+1 -1
@@ -31,7 +31,6 @@
31 "@babel/types": "^7.19.0",
32 "chalk": "4",
33 "invariant": "^2.2.4",
34 - "prettier": "2.8.8",
34 "pretty-format": "^24"
35 },
36 "devDependencies": {
@@ -60,6 +59,7 @@
59 "hermes-parser": "^0.15.1",
60 "jest": "^29.0.3",
61 "jest-environment-jsdom": "^29.0.3",
62 + "prettier": "2.8.8",
63 "react": "^0.0.0-experimental-493f72b0a-20230727",
64 "react-dom": "^0.0.0-experimental-493f72b0a-20230727",
65 "rimraf": "^3.0.2",
compiler/packages/babel-plugin-react-forget/src/Babel/RunReactForgetBabelPlugin.ts
+2 -16
@@ -10,23 +10,16 @@ import { transformFromAstSync } from "@babel/core";
10 import * as BabelParser from "@babel/parser";
11 import * as HermesParser from "hermes-parser";
12 import invariant from "invariant";
13 -import prettier from "prettier";
13 import type { PluginOptions } from "../Entrypoint";
14 import ReactForgetBabelPlugin from "./BabelPlugin";
15
17 -type ReactForgetBabelPluginResult = {
18 - ast: BabelCore.BabelFileResult["ast"];
19 - code: string;
20 - map: BabelCore.BabelFileResult["map"];
21 -};
22 -
16 export function runReactForgetBabelPlugin(
17 text: string,
18 file: string,
19 language: "flow" | "typescript",
20 options: PluginOptions | null,
21 includeAst: boolean = false
29 -): ReactForgetBabelPluginResult {
22 +): BabelCore.BabelFileResult {
23 let ast;
24 if (language === "flow") {
25 ast = HermesParser.parse(text, {
@@ -59,12 +52,5 @@ export function runReactForgetBabelPlugin(
52 result?.code != null,
53 `Expected BabelPluginReactForget to codegen successfully, got: ${result}`
54 );
62 - return {
63 - ast: result.ast,
64 - code: prettier.format(result.code, {
65 - semi: true,
66 - parser: language === "typescript" ? "babel-ts" : "flow",
67 - }),
68 - map: result.map,
69 - };
55 + return result;
56 }
compiler/packages/fixture-test-utils/src/compiler-utils.ts
+7 -4
@@ -110,9 +110,12 @@ export function transformFixtureInput(
110
111 return {
112 ...result,
113 - code: prettier.format(result.code, {
114 - semi: true,
115 - parser: language === "typescript" ? "babel-ts" : "flow",
116 - }),
113 + code:
114 + result.code != null
115 + ? prettier.format(result.code, {
116 + semi: true,
117 + parser: language === "typescript" ? "babel-ts" : "flow",
118 + })
119 + : result.code,
120 };
121 }
compiler/packages/snap/src/compiler-worker.ts
+7 -6
@@ -88,12 +88,13 @@ export async function compile(
88 // since console log order is non-deterministic
89 const shouldLogPragma = input.split("\n")[0].includes("@debug");
90 toggleLogging(isOnlyFixture && (shouldLogPragma || implicitDebugMode));
91 - code = transformFixtureInput(
92 - input,
93 - basename,
94 - runReactForgetBabelPlugin,
95 - parseConfigPragma
96 - ).code;
91 + code =
92 + transformFixtureInput(
93 + input,
94 + basename,
95 + runReactForgetBabelPlugin,
96 + parseConfigPragma
97 + ).code ?? null;
98 } catch (e) {
99 e.message = e.message.replace(/\u001b[^m]*m/g, "");
100 error = e;
compiler/packages/sprout/src/runner-worker.ts
+9 -2
@@ -13,13 +13,13 @@ import type { parseConfigPragma as ParseConfigPragma } from "babel-plugin-react-
13 import {
14 COMPILER_PATH,
15 PARSE_CONFIG_PRAGMA_PATH,
16 - parseLanguage,
16 TestFixture,
17 + parseLanguage,
18 transformFixtureInput,
19 } from "fixture-test-utils";
20 import fs from "fs/promises";
21 import path from "path";
22 -import { doEval, EvaluatorResult } from "./runner-evaluator";
22 +import { EvaluatorResult, doEval } from "./runner-evaluator";
23
24 const { runReactForgetBabelPlugin } = require(COMPILER_PATH) as {
25 runReactForgetBabelPlugin: typeof RunReactForgetBabelPlugin;
@@ -135,6 +135,13 @@ function transformFixtureForget(
135 };
136 }
137
138 + if (forgetResult.code == null) {
139 + return {
140 + type: "UnexpectedError",
141 + value: "Unexpected - no code emitted",
142 + };
143 + }
144 +
145 const code = transformAST(
146 forgetResult.ast,
147 forgetResult.code,