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
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
|