You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
3.0 KiB
62 lines
3.0 KiB
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.createDevServerMiddleware = void 0;
|
|
const body_parser_1 = __importDefault(require("body-parser"));
|
|
const importMetroFromProject_1 = require("../metro/importMetroFromProject");
|
|
const middlwareMutations_1 = require("../middlwareMutations");
|
|
const clientLogsMiddleware_1 = __importDefault(require("./clientLogsMiddleware"));
|
|
const createJsInspectorMiddleware_1 = __importDefault(require("./createJsInspectorMiddleware"));
|
|
const remoteDevtoolsCorsMiddleware_1 = require("./remoteDevtoolsCorsMiddleware");
|
|
const remoteDevtoolsSecurityHeadersMiddleware_1 = require("./remoteDevtoolsSecurityHeadersMiddleware");
|
|
const suppressErrorMiddleware_1 = require("./suppressErrorMiddleware");
|
|
/**
|
|
* Extends the default `createDevServerMiddleware` and adds some Expo CLI-specific dev middleware
|
|
* with exception for the manifest middleware which is currently in `xdl`.
|
|
*
|
|
* Adds:
|
|
* - `/logs`: pipe runtime `console` logs to the `props.logger` object.
|
|
* - `/inspector`: launch hermes inspector proxy in chrome.
|
|
* - CORS support for remote devtools
|
|
* - body parser middleware
|
|
*
|
|
* @param props.watchFolders array of directory paths to use with watchman
|
|
* @param props.port port that the dev server will run on
|
|
* @param props.logger bunyan instance that all runtime `console` logs will be piped through.
|
|
*
|
|
* @returns
|
|
*/
|
|
function createDevServerMiddleware(projectRoot, { watchFolders, port, logger, }) {
|
|
const { createDevServerMiddleware, securityHeadersMiddleware } = (0, importMetroFromProject_1.importCliServerApiFromProject)(projectRoot);
|
|
const { middleware,
|
|
// @ts-expect-error: Old API
|
|
attachToServer,
|
|
// New
|
|
debuggerProxyEndpoint, messageSocketEndpoint, eventsSocketEndpoint, websocketEndpoints, } = createDevServerMiddleware({
|
|
port,
|
|
watchFolders,
|
|
});
|
|
// securityHeadersMiddleware does not support cross-origin requests for remote devtools to get the sourcemap.
|
|
// We replace with the enhanced version.
|
|
(0, middlwareMutations_1.replaceMiddlewareWith)(middleware, securityHeadersMiddleware, remoteDevtoolsSecurityHeadersMiddleware_1.remoteDevtoolsSecurityHeadersMiddleware);
|
|
middleware.use(remoteDevtoolsCorsMiddleware_1.remoteDevtoolsCorsMiddleware);
|
|
(0, middlwareMutations_1.prependMiddleware)(middleware, suppressErrorMiddleware_1.suppressRemoteDebuggingErrorMiddleware);
|
|
middleware.use(body_parser_1.default.json());
|
|
middleware.use('/logs', (0, clientLogsMiddleware_1.default)(logger));
|
|
middleware.use('/inspector', (0, createJsInspectorMiddleware_1.default)());
|
|
return {
|
|
logger,
|
|
middleware,
|
|
// Old
|
|
attachToServer,
|
|
// New
|
|
debuggerProxyEndpoint,
|
|
messageSocketEndpoint,
|
|
eventsSocketEndpoint,
|
|
websocketEndpoints,
|
|
};
|
|
}
|
|
exports.createDevServerMiddleware = createDevServerMiddleware;
|
|
//# sourceMappingURL=devServerMiddleware.js.map
|