diff --git a/compiler/packages/babel-plugin-react-forget/package.json b/compiler/packages/babel-plugin-react-forget/package.json index cb201d5c50..4b5cabc25f 100644 --- a/compiler/packages/babel-plugin-react-forget/package.json +++ b/compiler/packages/babel-plugin-react-forget/package.json @@ -31,7 +31,6 @@ "@babel/types": "^7.19.0", "chalk": "4", "invariant": "^2.2.4", - "prettier": "2.8.8", "pretty-format": "^24" }, "devDependencies": { @@ -60,6 +59,7 @@ "hermes-parser": "^0.15.1", "jest": "^29.0.3", "jest-environment-jsdom": "^29.0.3", + "prettier": "2.8.8", "react": "^0.0.0-experimental-493f72b0a-20230727", "react-dom": "^0.0.0-experimental-493f72b0a-20230727", "rimraf": "^3.0.2", diff --git a/compiler/packages/babel-plugin-react-forget/src/Babel/RunReactForgetBabelPlugin.ts b/compiler/packages/babel-plugin-react-forget/src/Babel/RunReactForgetBabelPlugin.ts index 0f7c76b9b9..f3493517b9 100644 --- a/compiler/packages/babel-plugin-react-forget/src/Babel/RunReactForgetBabelPlugin.ts +++ b/compiler/packages/babel-plugin-react-forget/src/Babel/RunReactForgetBabelPlugin.ts @@ -10,23 +10,16 @@ import { transformFromAstSync } from "@babel/core"; import * as BabelParser from "@babel/parser"; import * as HermesParser from "hermes-parser"; import invariant from "invariant"; -import prettier from "prettier"; import type { PluginOptions } from "../Entrypoint"; import ReactForgetBabelPlugin from "./BabelPlugin"; -type ReactForgetBabelPluginResult = { - ast: BabelCore.BabelFileResult["ast"]; - code: string; - map: BabelCore.BabelFileResult["map"]; -}; - export function runReactForgetBabelPlugin( text: string, file: string, language: "flow" | "typescript", options: PluginOptions | null, includeAst: boolean = false -): ReactForgetBabelPluginResult { +): BabelCore.BabelFileResult { let ast; if (language === "flow") { ast = HermesParser.parse(text, { @@ -59,12 +52,5 @@ export function runReactForgetBabelPlugin( result?.code != null, `Expected BabelPluginReactForget to codegen successfully, got: ${result}` ); - return { - ast: result.ast, - code: prettier.format(result.code, { - semi: true, - parser: language === "typescript" ? "babel-ts" : "flow", - }), - map: result.map, - }; + return result; } diff --git a/compiler/packages/fixture-test-utils/src/compiler-utils.ts b/compiler/packages/fixture-test-utils/src/compiler-utils.ts index 537dc7cd0d..295a690093 100644 --- a/compiler/packages/fixture-test-utils/src/compiler-utils.ts +++ b/compiler/packages/fixture-test-utils/src/compiler-utils.ts @@ -110,9 +110,12 @@ export function transformFixtureInput( return { ...result, - code: prettier.format(result.code, { - semi: true, - parser: language === "typescript" ? "babel-ts" : "flow", - }), + code: + result.code != null + ? prettier.format(result.code, { + semi: true, + parser: language === "typescript" ? "babel-ts" : "flow", + }) + : result.code, }; } diff --git a/compiler/packages/snap/src/compiler-worker.ts b/compiler/packages/snap/src/compiler-worker.ts index 81412ca108..164c0273aa 100644 --- a/compiler/packages/snap/src/compiler-worker.ts +++ b/compiler/packages/snap/src/compiler-worker.ts @@ -88,12 +88,13 @@ export async function compile( // since console log order is non-deterministic const shouldLogPragma = input.split("\n")[0].includes("@debug"); toggleLogging(isOnlyFixture && (shouldLogPragma || implicitDebugMode)); - code = transformFixtureInput( - input, - basename, - runReactForgetBabelPlugin, - parseConfigPragma - ).code; + code = + transformFixtureInput( + input, + basename, + runReactForgetBabelPlugin, + parseConfigPragma + ).code ?? null; } catch (e) { e.message = e.message.replace(/\u001b[^m]*m/g, ""); error = e; diff --git a/compiler/packages/sprout/src/runner-worker.ts b/compiler/packages/sprout/src/runner-worker.ts index 1c1f2f504e..be77232fd8 100644 --- a/compiler/packages/sprout/src/runner-worker.ts +++ b/compiler/packages/sprout/src/runner-worker.ts @@ -13,13 +13,13 @@ import type { parseConfigPragma as ParseConfigPragma } from "babel-plugin-react- import { COMPILER_PATH, PARSE_CONFIG_PRAGMA_PATH, - parseLanguage, TestFixture, + parseLanguage, transformFixtureInput, } from "fixture-test-utils"; import fs from "fs/promises"; import path from "path"; -import { doEval, EvaluatorResult } from "./runner-evaluator"; +import { EvaluatorResult, doEval } from "./runner-evaluator"; const { runReactForgetBabelPlugin } = require(COMPILER_PATH) as { runReactForgetBabelPlugin: typeof RunReactForgetBabelPlugin; @@ -135,6 +135,13 @@ function transformFixtureForget( }; } + if (forgetResult.code == null) { + return { + type: "UnexpectedError", + value: "Unexpected - no code emitted", + }; + } + const code = transformAST( forgetResult.ast, forgetResult.code,