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.

123 lines
3.7 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createDevServerMiddleware = createDevServerMiddleware;
function _bodyParser() {
const data = _interopRequireDefault(require("body-parser"));
_bodyParser = function () {
return data;
};
return data;
}
function _importMetroFromProject() {
const data = require("../metro/importMetroFromProject");
_importMetroFromProject = function () {
return data;
};
return data;
}
function _middlwareMutations() {
const data = require("../middlwareMutations");
_middlwareMutations = function () {
return data;
};
return data;
}
function _clientLogsMiddleware() {
const data = _interopRequireDefault(require("./clientLogsMiddleware"));
_clientLogsMiddleware = function () {
return data;
};
return data;
}
function _createJsInspectorMiddleware() {
const data = _interopRequireDefault(require("./createJsInspectorMiddleware"));
_createJsInspectorMiddleware = function () {
return data;
};
return data;
}
function _remoteDevtoolsCorsMiddleware() {
const data = require("./remoteDevtoolsCorsMiddleware");
_remoteDevtoolsCorsMiddleware = function () {
return data;
};
return data;
}
function _remoteDevtoolsSecurityHeadersMiddleware() {
const data = require("./remoteDevtoolsSecurityHeadersMiddleware");
_remoteDevtoolsSecurityHeadersMiddleware = function () {
return data;
};
return data;
}
function _suppressErrorMiddleware() {
const data = require("./suppressErrorMiddleware");
_suppressErrorMiddleware = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 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().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().replaceMiddlewareWith)(middleware, securityHeadersMiddleware, _remoteDevtoolsSecurityHeadersMiddleware().remoteDevtoolsSecurityHeadersMiddleware);
middleware.use(_remoteDevtoolsCorsMiddleware().remoteDevtoolsCorsMiddleware);
(0, _middlwareMutations().prependMiddleware)(middleware, _suppressErrorMiddleware().suppressRemoteDebuggingErrorMiddleware);
middleware.use(_bodyParser().default.json());
middleware.use('/logs', (0, _clientLogsMiddleware().default)(logger));
middleware.use('/inspector', (0, _createJsInspectorMiddleware().default)());
return {
logger,
middleware,
// Old
attachToServer,
// New
debuggerProxyEndpoint,
messageSocketEndpoint,
eventsSocketEndpoint,
websocketEndpoints
};
}
//# sourceMappingURL=devServerMiddleware.js.map