From dc603bb2fa505fc458ad5078aab7fb465c506f3f Mon Sep 17 00:00:00 2001 From: Sathya Gunasekaran Date: Wed, 17 May 2023 18:38:08 +0100 Subject: [PATCH] [babel] Add isDev flag and put logging behind it --- .../packages/snap/src/compiler-worker.ts | 1 + compiler/forget/src/Babel/BabelPlugin.ts | 31 +++++++++++-------- compiler/forget/src/Babel/PluginOptions.ts | 3 ++ .../forget/src/__tests__/compiler-test.ts | 1 + .../test-utils/generateTestsFromFixtures.ts | 1 + 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/compiler/forget/packages/snap/src/compiler-worker.ts b/compiler/forget/packages/snap/src/compiler-worker.ts index cedd9c226f..dc0977e05b 100644 --- a/compiler/forget/packages/snap/src/compiler-worker.ts +++ b/compiler/forget/packages/snap/src/compiler-worker.ts @@ -124,6 +124,7 @@ export async function compile( logger: null, gating, panicOnBailout, + isDev: true, }).code; } catch (e) { error = e; diff --git a/compiler/forget/src/Babel/BabelPlugin.ts b/compiler/forget/src/Babel/BabelPlugin.ts index 7323de5592..32193f9713 100644 --- a/compiler/forget/src/Babel/BabelPlugin.ts +++ b/compiler/forget/src/Babel/BabelPlugin.ts @@ -109,7 +109,9 @@ export default function ReactForgetBabelPlugin( ) { throw err; } else { - console.log(formatErrorsForConsole(err, pass.filename ?? null)); + if (pass.opts.isDev) { + log(err, pass.filename ?? null); + } } } finally { // We are generating a new FunctionDeclaration node, so we must skip over it or this @@ -150,7 +152,9 @@ export default function ReactForgetBabelPlugin( if (options.panicOnBailout || error.isCritical()) { throw error; } else { - console.log(formatErrorsForConsole(error, pass.filename)); + if (pass.opts.isDev) { + log(error, pass.filename); + } } return; } @@ -219,7 +223,9 @@ export default function ReactForgetBabelPlugin( if (options.panicOnBailout || error.isCritical()) { throw error; } else { - console.log(formatErrorsForConsole(error, pass.filename ?? null)); + if (options.isDev) { + log(error, pass.filename ?? null); + } } } @@ -329,17 +335,16 @@ function shouldCompile( return true; } -function formatErrorsForConsole( - error: CompilerError, - filename: string | null -): string { +function log(error: CompilerError, filename: string | null): void { const filenameStr = filename ? `in ${filename}` : ""; - return error.details - .map( - (e) => - `[ReactForget] Skipping compilation of component ${filenameStr}: ${e.printErrorMessage()}` - ) - .join("\n"); + console.log( + error.details + .map( + (e) => + `[ReactForget] Skipping compilation of component ${filenameStr}: ${e.printErrorMessage()}` + ) + .join("\n") + ); } function makeError( diff --git a/compiler/forget/src/Babel/PluginOptions.ts b/compiler/forget/src/Babel/PluginOptions.ts index 9152be11fc..6c04b6ee35 100644 --- a/compiler/forget/src/Babel/PluginOptions.ts +++ b/compiler/forget/src/Babel/PluginOptions.ts @@ -51,6 +51,8 @@ export type PluginOptions = { gating: GatingOptions | null; panicOnBailout: boolean; + + isDev: boolean; }; export type Logger = { @@ -63,6 +65,7 @@ export const defaultOptions: PluginOptions = { environment: null, logger: null, gating: null, + isDev: false, } as const; export function parsePluginOptions(obj: unknown): PluginOptions { diff --git a/compiler/forget/src/__tests__/compiler-test.ts b/compiler/forget/src/__tests__/compiler-test.ts index 0e233b6875..3745e23507 100644 --- a/compiler/forget/src/__tests__/compiler-test.ts +++ b/compiler/forget/src/__tests__/compiler-test.ts @@ -63,6 +63,7 @@ describe("React Forget", () => { logger: null, gating: options.gating, panicOnBailout: options.panicOnBailout, + isDev: true, }).code, }); } catch (e) { diff --git a/compiler/forget/src/__tests__/test-utils/generateTestsFromFixtures.ts b/compiler/forget/src/__tests__/test-utils/generateTestsFromFixtures.ts index afc210f626..47f63d7782 100644 --- a/compiler/forget/src/__tests__/test-utils/generateTestsFromFixtures.ts +++ b/compiler/forget/src/__tests__/test-utils/generateTestsFromFixtures.ts @@ -141,6 +141,7 @@ export default function generateTestsFromFixtures( gating, language: parseLanguage(input), panicOnBailout, + isDev: true, }); } else { receivedOutput = "<>";