Spaces:
Sleeping
Sleeping
pythonic-rag-FastAPIReact
/
frontend
/node_modules
/@pmmmwh
/react-refresh-webpack-plugin
/sockets
/utils
/getUrlFromParts.js
| /** | |
| * Create a valid URL from parsed URL parts. | |
| * @param {import('./getSocketUrlParts').SocketUrlParts} urlParts The parsed URL parts. | |
| * @param {import('./getWDSMetadata').WDSMetaObj} [metadata] The parsed WDS metadata object. | |
| * @returns {string} The generated URL. | |
| */ | |
| function urlFromParts(urlParts, metadata) { | |
| if (typeof metadata === 'undefined') { | |
| metadata = {}; | |
| } | |
| let fullProtocol = 'http:'; | |
| if (urlParts.protocol) { | |
| fullProtocol = urlParts.protocol; | |
| } | |
| if (metadata.enforceWs) { | |
| fullProtocol = fullProtocol.replace(/^(?:http|.+-extension|file)/i, 'ws'); | |
| } | |
| fullProtocol = fullProtocol + '//'; | |
| let fullHost = urlParts.hostname; | |
| if (urlParts.auth) { | |
| const fullAuth = urlParts.auth.split(':').map(encodeURIComponent).join(':') + '@'; | |
| fullHost = fullAuth + fullHost; | |
| } | |
| if (urlParts.port) { | |
| fullHost = fullHost + ':' + urlParts.port; | |
| } | |
| const url = new URL(urlParts.pathname, fullProtocol + fullHost); | |
| return url.href; | |
| } | |
| module.exports = urlFromParts; | |