From 19435d0ff2a239196c7b5708a6ef13bfef78f4ca Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Mon, 23 Mar 2020 15:41:44 -0700 Subject: [PATCH] Move Noop Module Test Helpers to top level entry points This module has shared state. It needs to be external from builds. This lets us test the built versions of the Noop renderer. --- ...ightModuleTestHelper.js => flight-modules.js} | 0 .../react-noop-renderer/npm/flight-modules.js | 16 ++++++++++++++++ packages/react-noop-renderer/package.json | 1 + .../src/ReactNoopFlightClient.js | 2 +- .../src/ReactNoopFlightServer.js | 2 +- scripts/rollup/bundles.js | 14 ++++++++++++-- 6 files changed, 31 insertions(+), 4 deletions(-) rename packages/react-noop-renderer/{src/ReactNoopFlightModuleTestHelper.js => flight-modules.js} (100%) create mode 100644 packages/react-noop-renderer/npm/flight-modules.js diff --git a/packages/react-noop-renderer/src/ReactNoopFlightModuleTestHelper.js b/packages/react-noop-renderer/flight-modules.js similarity index 100% rename from packages/react-noop-renderer/src/ReactNoopFlightModuleTestHelper.js rename to packages/react-noop-renderer/flight-modules.js diff --git a/packages/react-noop-renderer/npm/flight-modules.js b/packages/react-noop-renderer/npm/flight-modules.js new file mode 100644 index 000000000000..f4079d795383 --- /dev/null +++ b/packages/react-noop-renderer/npm/flight-modules.js @@ -0,0 +1,16 @@ +'use strict'; + +// This file is used as temporary storage for modules generated in Flight tests. +var moduleIdx = 0; +var modules = new Map(); + +// This simulates what the compiler will do when it replaces render functions with server blocks. +exports.saveModule = function saveModule(render) { + var idx = '' + moduleIdx++; + modules.set(idx, render); + return idx; +}; + +exports.readModule = function readModule(idx) { + return modules.get(idx); +}; diff --git a/packages/react-noop-renderer/package.json b/packages/react-noop-renderer/package.json index a8475ebaf5b0..eb67626f474a 100644 --- a/packages/react-noop-renderer/package.json +++ b/packages/react-noop-renderer/package.json @@ -28,6 +28,7 @@ "persistent.js", "server.js", "flight-client.js", + "flight-modules.js", "flight-server.js", "cjs/" ] diff --git a/packages/react-noop-renderer/src/ReactNoopFlightClient.js b/packages/react-noop-renderer/src/ReactNoopFlightClient.js index 2e5e5d2e0c19..e2f9ad0df2df 100644 --- a/packages/react-noop-renderer/src/ReactNoopFlightClient.js +++ b/packages/react-noop-renderer/src/ReactNoopFlightClient.js @@ -16,7 +16,7 @@ import type {ReactModelRoot} from 'react-client/flight'; -import {readModule} from './ReactNoopFlightModuleTestHelper'; +import {readModule} from 'react-noop-renderer/flight-modules'; import ReactFlightClient from 'react-client/flight'; diff --git a/packages/react-noop-renderer/src/ReactNoopFlightServer.js b/packages/react-noop-renderer/src/ReactNoopFlightServer.js index 6aa15f85586e..1ebf5229e0a2 100644 --- a/packages/react-noop-renderer/src/ReactNoopFlightServer.js +++ b/packages/react-noop-renderer/src/ReactNoopFlightServer.js @@ -16,7 +16,7 @@ import type {ReactModel} from 'react-server/src/ReactFlightServer'; -import {saveModule} from './ReactNoopFlightModuleTestHelper'; +import {saveModule} from 'react-noop-renderer/flight-modules'; import ReactFlightServer from 'react-server/flight'; diff --git a/scripts/rollup/bundles.js b/scripts/rollup/bundles.js index 205f1acfbc41..87bebe424b25 100644 --- a/scripts/rollup/bundles.js +++ b/scripts/rollup/bundles.js @@ -405,7 +405,12 @@ const bundles = [ moduleType: RENDERER, entry: 'react-noop-renderer/flight-server', global: 'ReactNoopFlightServer', - externals: ['react', 'scheduler', 'expect'], + externals: [ + 'react', + 'scheduler', + 'expect', + 'react-noop-renderer/flight-modules', + ], }, /******* React Noop Flight Client (used for tests) *******/ @@ -414,7 +419,12 @@ const bundles = [ moduleType: RENDERER, entry: 'react-noop-renderer/flight-client', global: 'ReactNoopFlightClient', - externals: ['react', 'scheduler', 'expect'], + externals: [ + 'react', + 'scheduler', + 'expect', + 'react-noop-renderer/flight-modules', + ], }, /******* React Reconciler *******/