mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
f4f18940d7
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/39091 Changelog: [Internal] Adds a simple typed logging hook to `react-native/dev-middleware`. This is intended to allow integrators to receive events from the dev server, apply any relevant sampling/processing, and log them to a backend. (To be clear, the open source version of React Native does not and will not collect any data.) WARNING: The API will evolve over the coming weeks/months and is *not guaranteed to be stable* - it might even break between patch releases. Reviewed By: huntie Differential Revision: D48466760 fbshipit-source-id: ed1e21fb0dac5d6199ff1ee26017a1d33d9b7d92
62 lines
1.4 KiB
JavaScript
62 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow strict-local
|
|
* @format
|
|
* @oncall react_native
|
|
*/
|
|
|
|
import type {NextHandleFunction} from 'connect';
|
|
import type {EventReporter} from './types/EventReporter';
|
|
import type {Logger} from './types/Logger';
|
|
|
|
import connect from 'connect';
|
|
import openDebuggerMiddleware from './middleware/openDebuggerMiddleware';
|
|
import InspectorProxy from './inspector-proxy/InspectorProxy';
|
|
|
|
type Options = $ReadOnly<{
|
|
host: string,
|
|
port: number,
|
|
projectRoot: string,
|
|
logger?: Logger,
|
|
unstable_eventReporter?: EventReporter,
|
|
}>;
|
|
|
|
type DevMiddlewareAPI = $ReadOnly<{
|
|
middleware: NextHandleFunction,
|
|
websocketEndpoints: {[path: string]: ws$WebSocketServer},
|
|
}>;
|
|
|
|
export default function createDevMiddleware({
|
|
host,
|
|
port,
|
|
projectRoot,
|
|
logger,
|
|
unstable_eventReporter,
|
|
}: Options): DevMiddlewareAPI {
|
|
const inspectorProxy = new InspectorProxy(
|
|
projectRoot,
|
|
unstable_eventReporter,
|
|
);
|
|
|
|
const middleware = connect()
|
|
.use(
|
|
'/open-debugger',
|
|
openDebuggerMiddleware({
|
|
logger,
|
|
eventReporter: unstable_eventReporter,
|
|
}),
|
|
)
|
|
.use((...args) => inspectorProxy.processRequest(...args));
|
|
|
|
return {
|
|
middleware,
|
|
websocketEndpoints: inspectorProxy.createWebSocketListeners(
|
|
`${host}:${port}`,
|
|
),
|
|
};
|
|
}
|