From bb1e3cdb041a9453435ff25193545209109c54f6 Mon Sep 17 00:00:00 2001 From: Alex Hunt Date: Tue, 28 Jan 2025 07:11:13 -0800 Subject: [PATCH] Update cli-server-api middleware imports (#48997) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/48997 Follows https://github.com/react-native-community/cli/pull/2584. - Also add FIXME comment flagging potential core APIs gap without CLI. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D68766565 fbshipit-source-id: 60747715f76c4323e306c39ab0613fb4818b4914 --- .../src/commands/start/middleware.js | 17 +++++++---------- .../src/commands/start/runServer.js | 8 ++------ 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/packages/community-cli-plugin/src/commands/start/middleware.js b/packages/community-cli-plugin/src/commands/start/middleware.js index db6b46bad276a6..e49282084b119f 100644 --- a/packages/community-cli-plugin/src/commands/start/middleware.js +++ b/packages/community-cli-plugin/src/commands/start/middleware.js @@ -9,7 +9,7 @@ * @oncall react_native */ -import type {NextHandleFunction, Server} from 'connect'; +import type {Server} from 'connect'; import type {TerminalReportableEvent} from 'metro/src/lib/TerminalReporter'; const debug = require('debug')('ReactNative:CommunityCliPlugin'); @@ -30,10 +30,6 @@ type MiddlewareReturn = { ... }; -const noopNextHandle: NextHandleFunction = (req, res, next) => { - next(); -}; - // $FlowFixMe const unusedStubWSServer: ws$WebSocketServer = {}; // $FlowFixMe @@ -45,6 +41,12 @@ const communityMiddlewareFallback = { port: number, watchFolders: $ReadOnlyArray, }): MiddlewareReturn => ({ + // FIXME: Several features will break without community middleware and + // should be migrated into core. + // e.g. used by Libraries/Core/Devtools: + // - /open-stack-frame + // - /open-url + // - /symbolicate middleware: unusedMiddlewareStub, websocketEndpoints: {}, messageSocketEndpoint: { @@ -59,15 +61,12 @@ const communityMiddlewareFallback = { reportEvent: (event: TerminalReportableEvent) => {}, }, }), - indexPageMiddleware: noopNextHandle, }; // Attempt to use the community middleware if it exists, but fallback to // the stubs if it doesn't. try { const community = require('@react-native-community/cli-server-api'); - communityMiddlewareFallback.indexPageMiddleware = - community.indexPageMiddleware; communityMiddlewareFallback.createDevServerMiddleware = community.createDevServerMiddleware; } catch { @@ -77,5 +76,3 @@ Starting the server without the community middleware.`); export const createDevServerMiddleware = communityMiddlewareFallback.createDevServerMiddleware; -export const indexPageMiddleware = - communityMiddlewareFallback.indexPageMiddleware; diff --git a/packages/community-cli-plugin/src/commands/start/runServer.js b/packages/community-cli-plugin/src/commands/start/runServer.js index ce4f7bcd9dead4..1763afa625ed6a 100644 --- a/packages/community-cli-plugin/src/commands/start/runServer.js +++ b/packages/community-cli-plugin/src/commands/start/runServer.js @@ -19,7 +19,7 @@ import isDevServerRunning from '../../utils/isDevServerRunning'; import loadMetroConfig from '../../utils/loadMetroConfig'; import * as version from '../../utils/version'; import attachKeyHandlers from './attachKeyHandlers'; -import {createDevServerMiddleware, indexPageMiddleware} from './middleware'; +import {createDevServerMiddleware} from './middleware'; import {createDevMiddleware} from '@react-native/dev-middleware'; import chalk from 'chalk'; import Metro from 'metro'; @@ -146,11 +146,7 @@ async function runServer( secure: args.https, secureCert: args.cert, secureKey: args.key, - unstable_extraMiddleware: [ - communityMiddleware, - indexPageMiddleware, - middleware, - ], + unstable_extraMiddleware: [communityMiddleware, middleware], websocketEndpoints: { ...communityWebsocketEndpoints, ...websocketEndpoints,