From c4ae5734492c68aac5ba7278d41cc15a3e56252d Mon Sep 17 00:00:00 2001 From: Kevin Weber Date: Tue, 26 May 2020 17:30:21 -0700 Subject: [PATCH 1/2] Fix envName bug --- .../src/ReactFreshBabelPlugin.js | 2 +- .../__tests__/ReactFreshBabelPlugin-test.js | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/react-refresh/src/ReactFreshBabelPlugin.js b/packages/react-refresh/src/ReactFreshBabelPlugin.js index 1928c07004bd3..5acb899e82a5a 100644 --- a/packages/react-refresh/src/ReactFreshBabelPlugin.js +++ b/packages/react-refresh/src/ReactFreshBabelPlugin.js @@ -10,7 +10,7 @@ export default function(babel, opts = {}) { if (typeof babel.getEnv === 'function') { // Only available in Babel 7. - const env = babel.getEnv(); + const env = babel.env(); if (env !== 'development' && !opts.skipEnvCheck) { throw new Error( 'React Refresh Babel transform should only be enabled in development environment. ' + diff --git a/packages/react-refresh/src/__tests__/ReactFreshBabelPlugin-test.js b/packages/react-refresh/src/__tests__/ReactFreshBabelPlugin-test.js index 359aa70ccd869..cdcfe4d840730 100644 --- a/packages/react-refresh/src/__tests__/ReactFreshBabelPlugin-test.js +++ b/packages/react-refresh/src/__tests__/ReactFreshBabelPlugin-test.js @@ -16,13 +16,15 @@ function transform(input, options = {}) { babel.transform(input, { babelrc: false, configFile: false, + envName: options.envName, plugins: [ '@babel/syntax-jsx', '@babel/syntax-dynamic-import', [ freshPlugin, { - skipEnvCheck: true, + skipEnvCheck: + options.skipEnvCheck === undefined ? true : options.skipEnvCheck, // To simplify debugging tests: emitFullSignatures: true, ...options.freshOptions, @@ -498,4 +500,19 @@ describe('ReactFreshBabelPlugin', () => { ), ).toMatchSnapshot(); }); + + it("respects Babel's envName option", () => { + const envName = 'random'; + expect(() => + transform(`export default function BabelEnv () { return null };`, { + envName, + skipEnvCheck: false, + }), + ).toThrowError( + 'React Refresh Babel transform should only be enabled in development environment. ' + + 'Instead, the environment is: "' + + envName + + '". If you want to override this check, pass {skipEnvCheck: true} as plugin options.', + ); + }); }); From 6f032e62c7f928c529d34cafb413f053ed729b89 Mon Sep 17 00:00:00 2001 From: Kevin Weber Date: Wed, 27 May 2020 08:36:05 -0700 Subject: [PATCH 2/2] Replace getEnv with env --- packages/react-refresh/src/ReactFreshBabelPlugin.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-refresh/src/ReactFreshBabelPlugin.js b/packages/react-refresh/src/ReactFreshBabelPlugin.js index 5acb899e82a5a..5f10ceaf0fce8 100644 --- a/packages/react-refresh/src/ReactFreshBabelPlugin.js +++ b/packages/react-refresh/src/ReactFreshBabelPlugin.js @@ -8,7 +8,7 @@ 'use strict'; export default function(babel, opts = {}) { - if (typeof babel.getEnv === 'function') { + if (typeof babel.env === 'function') { // Only available in Babel 7. const env = babel.env(); if (env !== 'development' && !opts.skipEnvCheck) {