mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51416 Deletes `oncall` annotations from the `facebook/react-native` repository. Changelog: [Internal] Reviewed By: javache Differential Revision: D74902524 fbshipit-source-id: 32a6a5b2ff27281792d572f151e2b094d9a79029
32 lines
928 B
JavaScript
32 lines
928 B
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
|
|
*/
|
|
|
|
// Determine the base URL (scheme and host) used by a client to reach this
|
|
// server.
|
|
//
|
|
// TODO: Support X-Forwarded-Host, etc. for trusted proxies
|
|
export default function getBaseUrlFromRequest(
|
|
req: http$IncomingMessage<tls$TLSSocket> | http$IncomingMessage<net$Socket>,
|
|
): ?URL {
|
|
const hostHeader = req.headers.host;
|
|
if (hostHeader == null) {
|
|
return null;
|
|
}
|
|
// `encrypted` is always true for TLS sockets and undefined for net
|
|
// https://github.com/nodejs/node/issues/41863#issuecomment-1030709186
|
|
const scheme = req.socket.encrypted === true ? 'https' : 'http';
|
|
const url = `${scheme}://${req.headers.host}`;
|
|
try {
|
|
return new URL(url);
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|