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,